2013-12-14 66 views
0

翻一番,我需要字符串轉換精度高達一倍,達到15位C++字符串轉換精度

我看了很多文章,類似的問題,並打印出來的數字時,他們建議使用setprecision(15)到屏幕上。

例如:

string line = "34.9438553"; 
double lon1 = strtod(line.c_str(),NULL); 

如果我寫

cout << lon1; 

只會打印34.9439代替34.9438553

我也許能寫

cout << setprecision(15) << lon1; 

,它將工作,但我需要變量lon1本身具有15位數的精度,因爲我需要變量內部的全部數字,而不僅僅是當我將它打印到屏幕上時。

有誰知道該怎麼做?

回答

4

setprecision設置印刷的精度,而不是雙精度。 strtod將雙精度值讀入雙精度值或雙精度值中的最小精度值(在本例中,以字符串爲界)。

總之,您已使用strtodlon1中獲得完整的字符串精度。

相關問題