C中的浮点问题

shr*_*sva 3 c c++ floating-point

可能重复:
与float文字的float比较中的奇怪输出

float a = 0.7;
if (a < 0.7) ;
Run Code Online (Sandbox Code Playgroud)

为什么这里的表达式评估为真?

Jos*_*shD 5

浮点数的精度有限.0.7最有可能无法准确表示,因此a中的值可能是浮点数的0.6999999999982左右.这比较一个双0.7(更精确:0.6999999999999999999999999384)会显示它更少.

看看这个:http://docs.sun.com/source/806-3568/ncg_goldberg.html