Never save something for a special occasion. Every day in your life is a special occasion.
分类: C/C++
2010-07-25 15:25:50
浮点数的表示误差 ?
|
结果:
b=8
bb=9.0
why ?
有一说 “浮点数在计算机里存放会有小小误差,aa的值其实是0.899999 ”
但我查看bb在计算中的表示,确实是 9.0。 难道与寄存器有关?
有人建议我看反汇编结果,可我不懂汇编,只好把问题晾在这里,期待有高手愿意解答。
暂时这样认为
表达式计算结果为8.9999...
转换为整数时丢弃小数,所以b=8.
赋值给bb时0舍1入变成9.0,所以bb=9.0。