C++ 浮點數精度丟失問題

float類型只能夠表示數字中的前6位或者前7位。

#include <iostream>
  
using namespace std;

int main()
{
    float a = 2.3400001E+7f;
    float b = a + 1.0f;

    cout.setf(ios::fixed);
    cout << "a = " << a <<endl;
    cout << "b = " << b <<endl;
    cout << "b - a = " << b -a << endl;
    return 0;
}

輸出結果:

a = 23400000.000000
b = 23400000.000000
b - a = 0.000000

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章