我想知道如何將像"1234.123456"
這樣的字符串轉換爲double
或float
。 我需要至少3位精度(即小數點後的3位數字,無論位於點之前的位數)。如何在C++中將字符串轉換爲具有6位精度的double?
0
A
回答
6
精確值1234.123456不能用任何通常的 機器浮點格式表示。你所能做的就是選擇你需要多少精度,並使用它。 (在大多數現代機器,double
有 16位精度,但仍然不意味着所有16位 值精確表示。)
至於轉換,只是做你會做轉換任何類型是什麼:
std::istringstream s("1234.123456");
double d;
s >> d;
而且讀 http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html。爲了安全地使用 機器浮點數,它將解釋你需要知道的基本最小值。
0
#include<stdlib.h>
int main()
{
double dnum = atof("1234.123456") ;
printf ("%f\n" , dnum) ;
return 0 ;
}
相關問題
- 1. 將字符串轉換爲double,然後再將double轉換爲字符串而不丟失精度
- 2. double轉換成字符串超過5位小數位精度
- 3. 如何轉換爲2精度的double - 字符串之後的字符串?
- 4. 將double轉換爲保持數字高精度的字符串,C++
- 5. 將double轉換爲字符串C++?
- 6. 如何將double轉換爲字符串?
- 7. 將字符串轉換爲雙精度,
- 8. 將字符串轉換爲雙精度
- 9. 將字符串轉換爲雙精度?
- 10. 將字符串轉換爲double,而字符串具有N個小數,C++
- 11. 如何將字符串轉換爲c中的double值?
- 12. 如何將C++中的double轉換爲字符串
- 13. 如何將double轉換爲15位數的字符串?
- 14. 將字符串轉換爲雙精度 - 丟失精度
- 15. 將Double轉換爲String。丟失精度
- 16. 將字符串轉換爲雙精度的C++錯誤
- 17. C++字符串轉換精度
- 18. 字符串轉換爲Double
- 19. 爲什麼將字符串轉換爲double可能會導致精度損失?
- 20. 將數字從stringstream轉換爲具有設置精度的字符串
- 21. C#如何將一個double轉換爲十進制和千位的字符串
- 22. 在C++中使用boost :: lexical_cast將double轉換爲字符串?
- 23. 如何將字符串轉換爲Double在Java中
- 24. 將字符串轉換爲matlab中的高精度數字
- 25. Swift將double轉換爲字符串
- 26. 將double轉換爲字符串1
- 27. Matlab:將Double值轉換爲字符串
- 28. Swift 3將Double轉換爲字符串
- 29. Java:將double轉換爲字符串
- 30. 將字符串轉換爲double(java/android)
'用於總共縮放它的6位數的雙倍使用',O_o – Gir 2012-08-14 08:32:51
['std :: stof'](http://en.cppreference.com/w/cpp/string/basic_string/stof)或['strtof'](http://en.cppreference.com/w/cpp/串/字節/ strtof)。 – 2012-08-14 08:33:59
我的編譯器告訴我, double d = 1234.123456 \t cout << d << endl; 輸出:1234.12 – MiNdFrEaK 2012-08-14 08:34:37