转换代码如下
union CharFloat{
float numeric;
unsigned char ascii[4];
};
float charTofloat(unsigned char *str) {
CharFloat value;
value.ascii[0] = str[0];
value.ascii[1] = str[1];
value.ascii[2] = str[2];
value.ascii[3] = str[3];
return value.numeric;
}
void floatochar(char* returnData, float numeric) {
CharFloat value;
int i = 0;
value.numeric = numeric;
returnData[i++] = value.ascii[3];
returnData[i++] = value.ascii[2];
returnData[i++] = value.ascii[1];
returnData[i++] = value.ascii[0];
for(int j=0;j<4;j++)
printf("%2x,",value.ascii[j]);
}
要得到1位小数的话,整数不能高于5位。
要得到2位小数的话,整数不能高于4位
要得到3位小数的话,整数不能高于3位
要得到4位小数的话,整数不能高于2位
要得到5位小数的话,整数不能高于1位
要得到6位小数的话,整数不能高于0位
小数最多七位其实是0.1000000
同理可以计算double的精确度整数最多16位,小数最多16位(0.1000000000000000)
版权声明:本文为qq_40004575原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。