#include <stdio.h>
int main()
{
float f;
f = 0.4;
if(f<0.4)
printf("It is less");
if(f>0.4)
printf("It is greater");
if(f==0.4)
printf("It is equal");
}
我无法理解为什么输出显示“它更大”。
我得到0.4转换为二进制表示是0x3ECCCCCD,即4.000000059604644775390625E-1。疑问是如果 f 存储这个四舍五入的值,为什么比较中的 0.4 是准确的。如果 f 和 0.4 都四舍五入,则输出应该是“它相等”。
我尝试使用 f = 0.5,它显示“它是相等的”。
当 f=0.9 时,它显示“它更少”。
请注意,根本没有算术。