[英]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.