舉例說明如下:
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),白山企業(yè)網(wǎng)站建設(shè),白山品牌網(wǎng)站建設(shè),網(wǎng)站定制,白山網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,白山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
#include iostream
#include iomanip
using namespace std;
int main( void )
{
const double value = 12.3456789;
cout value endl; // 默認(rèn)以6精度,所以輸出為 12.3457
cout setprecision(4) value endl; // 改成4精度,所以輸出為12.35
cout setprecision(8) value endl; // 改成8精度,所以輸出為12.345679
cout fixed setprecision(4) value endl; // 加了fixed意味著是固定點(diǎn)方式顯示,所以這里的精度指的是小數(shù)位,輸出為12.3457
cout value endl; // fixed和setprecision的作用還在,依然顯示12.3457
cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢復(fù)成整個數(shù)值的有效位數(shù),顯示為12.35
cout value endl;
cout.precision( 6 ); // 恢復(fù)成原來的樣子,輸出為12.3457
cout value endl;
}
C語言之所以命名為C,是因?yàn)?C語言源自Ken Thompson發(fā)明的B語言,而 B語言則源自BCPL語言。
C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。
在C的編程中,總會遇到浮點(diǎn)數(shù)的處理,有的時候,我們只需要保留2位小數(shù)作為輸出的結(jié)果,這時候,問題來了,怎樣才能讓cout輸出指定的小數(shù)點(diǎn)后保留位數(shù)呢?
在C語言的編程中,我們可以這樣實(shí)現(xiàn)它:
[cpp]?view plain?copy
printf("%.2f",?sample);
在C++中,是沒有格式符的,我們可以通過使用setprecision()函數(shù)來實(shí)現(xiàn)這個需求。
想要使用setprecision()函數(shù),必須包含頭文件#include iomanip。使用方式如下:
[cpp]?view plain?copy
cout??"a="??setprecision(2)??a?endl;
這時候,我們會發(fā)現(xiàn),如果a的值為0.20001,輸出的結(jié)果為a=0.2,后面第二位的0被省略了。
如果我們想要讓它自動補(bǔ)0,需要在cout之前進(jìn)行補(bǔ)0的定義。代碼如下:
[cpp]?view plain?copy
cout.setf(ios::fixed);
cout??"a="?fixed?setprecision(2)??a?endl;?//輸出a=0.20
這樣,我們就可以得到0.20了。當(dāng)然,如果想要關(guān)閉掉補(bǔ)0,只需要對fixed進(jìn)行取消設(shè)置操作。
[cpp]?view plain?copy
cout.unsetf(ios::fixed);
cout??"a="??setprecision(2)??a?endl;?//輸出a=0.2
我們的輸出結(jié)果就又變回a=0.2了。
參考代碼
[cpp]?view plain?copy
#include?iostream
#include?iomanip
using?namespace?std;
int?main()
{
float?a?=?0.20001;
cout.setf(ios::fixed);
cout??"a="?fixed?setprecision(2)??a?endl;?//輸出結(jié)果為a=0.20
cout.unsetf(ios::fixed);
cout??"a="??setprecision(2)??a?endl;?//輸出結(jié)果為a=0.2
return?0;
}
C語言控制輸出數(shù)字的有效位數(shù)可以使用printf()函數(shù)格式化輸出格式。
printf()函數(shù)的調(diào)用格式為: printf("格式化字符串", 參量表)。
其中格式化字符串可以控制輸出數(shù)字的有效位數(shù),只要將格式化字符串中加入%x.y就可以設(shè)置輸出的數(shù)字的位數(shù)了。x指定數(shù)據(jù)的寬度,即在輸出時可以輸出的最多數(shù)字位數(shù);y指定小數(shù)位數(shù),即保留小數(shù)點(diǎn)后y位數(shù)。
擴(kuò)展資料
printf()函數(shù)的功能及用法:
1、在c語言中產(chǎn)生格式化輸出的函數(shù)(定義在 stdio.h 中),其向未重定向終端(顯示器、控制臺等)輸出字符。
2、無格式字符復(fù)制到輸出流。
3、轉(zhuǎn)換規(guī)范,每個規(guī)范導(dǎo)致在值參數(shù)列表中檢索 1 個或更多個項(xiàng)。
4、轉(zhuǎn)義序列,用于控制小數(shù)點(diǎn)后面的位數(shù)。
參考資料來源:百度百科——printf
int postfix = 0;
char format[10] = {0};
float a = 3.14159265;
scanf("%d", postfix); //讀入需要保留的小數(shù)位數(shù)
sprintf(format, "%%.%df", postfix); //比如輸入3,那么format里就是"%.3f",也就是保留三位小數(shù)
printf(format, a);
先把要控制的數(shù)字先乘,再取整,再除。
比如:把123.4567保留兩位
1:先把123.4567剩100等于12345.67
2:在數(shù)字前面加個(int)(12345.67)取整3:取整后數(shù)字變成12345
4:最后再把這個數(shù)除以100等于123.45
本文標(biāo)題:c語言函數(shù)控制小數(shù)位數(shù) C++控制小數(shù)點(diǎn)位數(shù)的函數(shù)
網(wǎng)頁URL:http://m.rwnh.cn/article36/doopppg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、外貿(mào)建站、網(wǎng)站設(shè)計(jì)公司、軟件開發(fā)、服務(wù)器托管、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)