读书人

蛋痛的有关问题

发布时间: 2012-02-19 19:43:39 作者: rapoo

蛋痛的问题
double a = -1.0 ;
double b = 0.2 ;
double d = b*5.0 ;
double c = a + b*5.0 ;
double e = a + d ;
ShowMessage(c) ;
ShowMessage(e) ;


为什么这两个输出不一样呢?
请大家帮小弟解释一下。
谢谢!!!

[解决办法]
浮点数无法精确的表示0.2,所以c d e均为不精确的值。

所以不一样很正常
[解决办法]
cb6,两个都是0,你是神马环境,神马结果
[解决办法]
正常的浮点误差
我的第一个c=5.55111512312578E-17
第二个e=0
[解决办法]
电脑计算浮点数肯定有误差的,很正常啊!

读书人网 >C++ Builder

热点推荐