发现一个奇怪的问题请教下各位!
stm32+mdk+rt_thread开发环境浮点型转整型结果异常
float f=0.02;
unsigned long int value;
int i;
for(i=0;i<2;i++)
{
f=f*10;
}
value=(unsigned long int)f;
结果value是1;
而直接value=(unsigned long int)(f*100);
则value正确为2。
请问这是什么原因呢? 问题简化了一下。
float f=0.02;
f = f*10;
f = f*10;
value=(unsigned long int)f;
结果:value = 1。
float f=0.02;
f = f*100;
value=(unsigned long int)f;
结果:value = 2。 谢谢楼上的!但为什么有两种结果呢? float f=0.02;
修改为
double f=0.02;
试试.
float 精度不够.舍入造成的.
页:
[1]