void main()
{
double sum=0;
for(double x=0.0;x!=5.5;x+=0.1)sum+=x;
}
上述程序用来计算加和0.1+0.2+...+5.4.这段程序在计算机上会陷入无限循环.因为计算机的精度有限,x永远不会达到5.5.
实际上,1/3和0.1这样的数在计算机上不可能精确的表示.
将这个for循环改为
for(double x=0.0;x<=5.5;x+=0.1)sum+=x;
结论:相等判断中包含浮点数应该格外小心,用比较表达式代替相等判断通常会使程序更加健壮!
浮点数比较注意
最新推荐文章于 2025-02-07 21:12:30 发布