清华版VS2008中的问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:57:53
page 122
for(double x = 0.0; x != 1.0; x += 0.2)
{
cout << x << " ";
}
书中此循环为无限循环
解释是:0.2不能精确的表示成2进制浮点数,这样x也永远不会精确的等于1.0,所以此循环会无限循环下去
但在实际中却是可以自动跳出循环的
本书附带的勘误表网站中也没有最新解释
认真看过这部分内容的麻烦给个合理的理解
混分的就直接走了,别浪费大家时间,烂了也不给你分

还是实际为主吧 我测试了这个程序

#include <iostream>

using namespace std;

void main(){

for(double x = 0.0; x != 1.0; x += 0.2) 

 cout<< x << " "; 

return;

}

能正常退出而且输出也是0.2 0.4 0.6 0.8