遇到一个问题想计算一下网络发送数据的大小 是要转化为char数组类型的 求这个数组的长度,如下:
double dou;
char tempvalue[256];
sprintf(tempValue,"%f",dou);
int z = strlen(tempValue);
想问一下这个z的最大取值会是多少 怎么计算出来的 谢谢大家
double dou;
char tempvalue[256];
sprintf(tempValue,"%f",dou);
int z = strlen(tempValue);
想问一下这个z的最大取值会是多少 怎么计算出来的 谢谢大家
/*
双精度浮点数形式存储,
负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324,
正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。
取最小值格式化之后为0.00000*/
double a=-1.79769313486231570E+308 ; //double的取值范围
char tempvalue[256];
sprintf(tempvalue,"%f",a);
int z = strlen(tempvalue); //z= 317 看来256的空间不够呀!!!
sprintf(tempValue,"%f",dou); 改成 sprintf(tempValue,"%lf",dou); 按Win32对double 的处理方式,小数后六位小数,z的最大值是316。附:
double dou;
dou = DBL_MAX;
char tempvalue[256];
sprintf(tempvalue,"%lf",dou);
int z = strlen(tempvalue); //z = 316
是什么意思,怎么做啊?
char tempvalue[256];
memcpy(tempvalue,(char*)&dou,8);