可能的重复问题:
浮点数计算不正确?
浮点数编译时计算没有发生?
今天发生了奇怪的事情,我快要失去理智了...
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
cout << setprecision(14);
cout << (1/9+1/9+4/9) << endl;
}
这段代码在MSVC 9.0 x64和x86以及GCC 4.4 x64和x86(默认选项和严格数学运算)上输出0。而据我所记,1/9+1/9+4/9 = 6/9 = 2/3 != 0