stringstream精度问题
生活随笔
收集整理的這篇文章主要介紹了
stringstream精度问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天使用stringstream輸出double,當小數位數很多的時候,會丟掉一些位數,原來“stringstream對象默認精度為6,而許多程序員錯誤地把“精度”理解為小數的位數,這是不正確的,精度應指代全部位數。因而,數字 1234.56可安全地通過默認精度6來表示,但12345.67會被截斷為12345.6。這樣的話,如果你有一個非常大的數,如1234567.8, 它的結果會靜悄悄地轉換為科學記數法:1.23457e+06,可以重新設置精度
int prec=numeric_limits::digits10; // 18ostringstream out;
out.precision(prec);//覆蓋默認精度
out<<value;
string str= out.str(); //從流中取出字符串 數值現在存儲在str中,等待格式化。
”以上內容引自http://blog.sina.com.cn/s/blog_4f183d960100lxh9.html
轉載于:https://www.cnblogs.com/coolbear/archive/2013/02/26/2933333.html
總結
以上是生活随笔為你收集整理的stringstream精度问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移位指令实现乘法
- 下一篇: CoreJava 5.3 泛型数组列表