2013-06-18 53 views
1

我有一個長雙,我想打印使用COUT的所有數字(沒有科學記數法的完整號碼)。如何打印雙長(全長)C++

下面的代碼: -

long double d = 3456489465498484.14159265358979; 
cout << "Num: " << d << endl; 

輸出: -

Num: 3.45649e+015 

雖然我所要的輸出是

Num: 3456489465498484.14159265358979; 

我試圖精度和設定精度,但似乎沒有以這種方式工作。請幫助

+0

http://www.cplusplus.com/reference/ios/scientific/和http://www.cplusplus.com/reference/iomanip/應該有所幫助。您可以設置精度顯示小數。 –

回答

0

一個浮點值的內部表示通常是二進制的,以便初始化它需要從十進制轉換爲二進制,並顯示它需要從二進制到十進制的轉換。大多數小數沒有一個確切的二進制表示,大多數二進制小數沒有一個準確的十進制表示,所以它是沒有意義的,一般情況下,要求「所有」的數字。在途中你已經丟失了一些數字,並且在出路時會損失更多。決定你想要的數量,並設置匹配的精度。