このコードを実行すると:
#include <iostream>
int main ()
{
using namespace std;
float a = 2.34E+22f;
float b = a+1.0f;
cout<<"a="<<a<<endl;
cout<<"b-a"<<b-a<<endl;
return 0;
}
浮動小数点数の有効桁数は 6 桁しかないため、結果は 0 になります。ただし、浮動小数点数 1.0 は 23 桁の数値に加算されます。では、プログラムはどのようにして 1 番の場所がないことを認識するのでしょうか? アルゴリズムは何でしょうか?