2015-06-20 50 views
0

我運行此代碼,但輸出與我的預期不同。 輸出:爲什麼輸出與我預期的代碼不同?

c = 1324 
v = 1324.99 

我預計,輸出應爲1324.987爲v。爲什麼v中的數據與輸出不同?

我使用窗口8 32

#include <iostream> 
using namespace std; 
int main() 
{ 
    double v = 1324.987; 
    int n; 
    n = int (v); 
    cout << "c = " << n << endl; 
    cout << "v = " << v << endl; 
    return 0; 
} 
+2

你期望什麼? –

+1

我預計輸出應該是1324.987,對於 –

回答

3

使用cout打印時的默認精度爲6,因此只顯示6位小數位。數字四捨五入到最接近的值,這就是爲什麼你看到1324.99。你需要set a higher precision看更「正確」的價值

但是,設置精度過高可能後面打印出大量的垃圾位,因爲二進制浮點類型不能存儲所有十進制浮點值完全相同。

相關問題