#include <iostream>
using namespace std;
int main()
{
cout.precision(32);
float val = 268433072;
float add = 13.5;
cout << "result =" << (val + add) << endl;
}
上記のプログラムを標準でコンパイルし、g++ main.cc
実行しています./a.out
しかし、私が受け取る出力は、
result =268433088
明らかに、これは正しい答えではありません.なぜこれが起こっているのですか?
EDITdouble
:代わりに使用する場合、これは発生しませんfloat