簡體   English   中英

C ++將字符串精確轉換為雙精度

[英]C++ convert string to double with precision

我需要將字符串轉換為精度最高為15位的雙精度數字

我已經閱讀了許多文章和類似的問題,他們建議在將數字打印到屏幕上時使用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位精度,因為我需要變量中的所有數字,而不僅是在將其打印到屏幕上時。

有人知道怎么做嗎?

setprecision設置打印的精度,而不是雙精度。 strtod讀取double值至double值或字符串中可用精度的最小值(在這種情況下,以字符串為界)。

簡而言之,通過使用strtod ,您已經具有lon1中的字符串的完全精度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM