b***y 发帖数: 2799 | 1 ☆─────────────────────────────────────☆
bsaint (bsaint) 于 (Mon Sep 26 13:37:48 2005) 提到:
碰到一个非常奇怪的问题;
如果代码是
for ( p=0; p<=30; p=p+0.2 )
cout << p << endl;
最后一个p输出的是30
但是如果代码换成
for ( p=0; p<=40; p=p+0.2 )
cout << p << endl;
最后一个p输出的是39.8
原本自己觉得怎么都应该是40*5+1个循环。
但是最后输出的p就是39.8。那么就是39。8×5+1个循环。为什么会得到结果?
我定义的p是double类型
到底是那里出了问题?
☆─────────────────────────────────────☆
goyacc (ken) 于 (Mon Sep 26 14:11:57 2005) 提到:
becaue you compare double, man, it is unpredictable.
they are not equal since |
|