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