![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
c语言函数问题
voidFloatToByte(floatfloatNum,unsignedchar*byteArry){intintNum;intNum=(int)(floatNum*...
void FloatToByte(float floatNum,unsigned char *byteArry)
{
int intNum;
intNum=(int)(floatNum*1000);
byteArry[0]=48+intNum/10000;
byteArry[1]=48+intNum/1000%10;
byteArry[2]=48+intNum/100%10;
byteArry[3]=48+intNum/10%10;
}
我想采用这种函数来解决浮点型和字符数组之间的转换,可是这个函数只能调用一次,第二次就会出现数据错误,这是为什么?
如果有解决方案,求告知,悬赏会增加50
unsigned char celToByte[4];//ds18b20温度传感器数据转四字节数组
unsigned char hToByte[4];//dht11温湿度传感器数据转四字节数组
unsigned char tToByte[4];
cel=33;
t=33;
h=33;
FloatToByte(h,hToByte);
FloatToByte(cel,celToByte);
FloatToByte(t,tToByte);
这是调用例子: 展开
{
int intNum;
intNum=(int)(floatNum*1000);
byteArry[0]=48+intNum/10000;
byteArry[1]=48+intNum/1000%10;
byteArry[2]=48+intNum/100%10;
byteArry[3]=48+intNum/10%10;
}
我想采用这种函数来解决浮点型和字符数组之间的转换,可是这个函数只能调用一次,第二次就会出现数据错误,这是为什么?
如果有解决方案,求告知,悬赏会增加50
unsigned char celToByte[4];//ds18b20温度传感器数据转四字节数组
unsigned char hToByte[4];//dht11温湿度传感器数据转四字节数组
unsigned char tToByte[4];
cel=33;
t=33;
h=33;
FloatToByte(h,hToByte);
FloatToByte(cel,celToByte);
FloatToByte(t,tToByte);
这是调用例子: 展开
展开全部
能详细一点问题现象么,单就这几行代码貌似没啥问题
追问
你看下面不是有三个调用该函数的吗?
只有第一个可以成功,另外两个就是错的
cel=33;
t=33;
h=33;
FloatToByte(h,hToByte); //结果正确,转换后是32.76
FloatToByte(cel,celToByte);//结果错误,不能转换成功,每一个数组值均小于48
FloatToByte(t,tToByte);//同上
但是无论把哪一个放在第一位都是正确结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询