小編給大家分享一下C++如何對(duì)浮點(diǎn)數(shù)保存指定位小數(shù),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站專注于成華企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。成華網(wǎng)站建設(shè)公司,為成華等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
1、背景
對(duì)浮點(diǎn)數(shù)保存指定位小數(shù)。比如, 1.123456. 要保存1位小數(shù),,調(diào)用方法后, 保存的結(jié)果為: 1.1。 再比如,1.98765, 保存2位小數(shù)的結(jié)果為: 2.00.
2、 解決方案
A、添加頭文件
#include <sstream> #include <iomanip>
B、添加命名空間
using namespace std;
C、添加函數(shù)
/* 函數(shù)名:round /* 函數(shù)功能:數(shù)據(jù)精度計(jì)算函數(shù) /* 函數(shù)參數(shù):float src:待求精度數(shù) int bits:精度(0表示保留小數(shù)點(diǎn)后0位小數(shù),1表示保留1位小數(shù),2:表示保留2位小數(shù)) /* 函數(shù)返回值:精度求取結(jié)果 /* Author: Lee /************************************************************************/ float round(float src, int bits);
函數(shù)實(shí)現(xiàn)
float CDemo1Dlg::round(float src, int bits)
{
stringstream ss;
ss << fixed << setprecision(bits) << f;
ss >> f;
return f;
}D、調(diào)用方式
CString str2 = L"99.054"; float f2 = (float)_wtof(str2); f2 *= 10; f2 = this->round(f2, 2);
E 、注意
比如, 1.05, double在計(jì)算機(jī)中表示為 1.0499999997, float表示為1.0500000003, 但其實(shí)際都是與1.05相等的。
round方方式對(duì)處理的位數(shù)為5的情況有例外,比如: 1.05, 處理的結(jié)果 可能為1.0499999997。 這里寫的是float, 你可以換做其他的類型。自己多測(cè)幾次就明白了
看完了這篇文章,相信你對(duì)“C++如何對(duì)浮點(diǎn)數(shù)保存指定位小數(shù)”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標(biāo)題:C++如何對(duì)浮點(diǎn)數(shù)保存指定位小數(shù)
轉(zhuǎn)載來于:http://chinadenli.net/article6/jpchig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站、、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)