如何設定printf函式顯示浮點數的精度

時間 2021-09-11 22:33:34

1樓:齊霸王在江湖夢

exg:

float pi = 3.1415926;

printf("%0.1f",pi);

2樓:韌勁

printf的格式控制的完整格式:

% - 0 m.n l或h 格式字元

下面對組成格式說明的各項加以說明:

①%:表示格式說明的起始符號,不可缺少。

②-:有-表示左對齊輸出,如省略表示右對齊輸出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

④m.n:m指域寬,即對應的輸出項在輸出裝置上所佔的字元數。n指精度。用於說明輸出的實型數的小數位數。為指定n時,隱含的精度為n=6位。

⑤l或h:l對整型指long型,對實型指double型。h用於將整型的格式字元修正為short型。

格式字元

格式字元用以指定輸出項的資料型別和輸出格式。

①d格式:用來輸出十進位制整數。有以下幾種用法:

%d:按整型資料的實際長度輸出。

%md:m為指定的輸出欄位的寬度。如果資料的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。

%ld:輸出長整型資料。

②o格式:以無符號八進位制形式輸出整數。對長整型可以用"%lo"格式輸出。同樣也可以指定欄位寬度用「%mo」格式輸出。

例:main()

執行結果:-1,177777

程式解析:-1在記憶體單元中(以補碼形式存放)為(1111111111111111)2,轉換為八進位制數為(177777)8。

③x格式:以無符號十六進位制形式輸出整數。對長整型可以用"%lx"格式輸出。同樣也可以指定欄位寬度用"%mx"格式輸出。

④u格式:以無符號十進位制形式輸出整數。對長整型可以用"%lu"格式輸出。同樣也可以指定欄位寬度用「%mu」格式輸出。

⑤c格式:輸出一個字元。

⑥s格式:用來輸出一個串。有幾中用法

%s:例如:printf("%s", "china")輸出"china"字串(不包括雙引號)。

%ms:輸出的字串佔m列,如字串本身長度大於m,則突破獲m的限制,將字串全部輸出。若串長小於m,則左補空格。

%-ms:如果串長小於m,則在m列範圍內,字串向左靠,右補空格。

%m.ns:輸出佔m列,但只取字串中左端n個字元。這n個字元輸出在m列的右側,左補空格。

%-m.ns:其中m、n含義同上,n個字元輸出在m列範圍的左側,右補空格。如果n>m,則自動取n值,即保證n個字元正常輸出。

⑦f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:

%f:不指定寬度,整數部分全部輸出並輸出6位小數。

%m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。

%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。

⑧e格式:以指數形式輸出實數。可用以下形式:

%e:數字部分(又稱尾數)輸出6位小數,指數部分佔5位或4位。

%m.ne和%-m.ne:m、n和」-」字元含義與前相同。此處n指資料的數字部分的小數位數,m表示整個輸出資料所佔的寬度。

⑨g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。

關於printf函式的進一步說明:

如果想輸出字元"%",則應該在「格式控制」字串中用連續兩個%表示,如:

printf("%f%%", 1.0/3);

輸出0.333333%。

如何使得c程式裡面printf函式對於浮點數不顯示後面的一大串0?

3樓:匿名使用者

printf("%g \n",float_value);

4樓:匿名使用者

%m.nf表示總長為m,小數點後有n位的實數

總長不足m位左邊補0

5樓:匿名使用者

printf("%.2f",1.55000); // %.2f就是2位小數的意思 %.3f就是3位....

6樓:楊洋

加%0.1f 就是printf("%0.1f",x);

7樓:張老叉

printf(「%0.lf」,a);

c++語言 對printf函式如何實現保留小數點後一位的效果

8樓:匿名使用者

【方法】printf("%.1f",a),其中dua是要輸出的浮點型

zhi變數dao

【說明】printf("%m.nf",a)表示輸出浮點型變數a,並保留專小數點後n位(整數部分正常輸屬出,小數點後不足部分按0輸出),m指輸出變數的總位數(十進位制,小數點佔用1位),當小於或者等於實際需要輸出的位數時,m不起任何作用,當m大於實際需要輸出的位數時,因為輸出採用左對齊,會在右方空格或者補零,詳細看參考舉例。

輸出的浮點型數都是1234.1234,第一到三行保留1、2、4位小數輸出;第四到第六行保留5位小數輸出,由於輸出變數只有四位小數,第五位就按零輸出;

1234.1234一般條件下輸出,長度是8,第一到七行保留的小數分別是1、2、4、5、5、5、4位,其實際需要的輸出長度分別是6、7、9、10、10、10、9(小數點佔用1位),可見第一到五行m的值都小於等於實際需要輸出的長度,所以m不起作用,第六行m=12,實際輸出需要的長度是10,多出的2位按空格輸出,實現左對齊,第七行同理,15-9=6,左對齊輸出6個空格。

9樓:匿名使用者

浮點數格式化%m.nf

其中的n就是精度,所以你用%.1f就行了

printf("%.1f", 123.456);

輸出123.5

10樓:匿名使用者

#include

#include

#include

using namespace std;

int main(int argc, _tchar* ar**)

c語言 此題輸出的結果如何保留兩位小數

11樓:問明

#include

#include

char str[51];

int n,count,i;

int main()

scanf("%s",&str);

n=strlen(str);

count=1;

for(i=1;i{if(str!=str[i-1])count++;

else continue;

double ans;

ans=(float)n/count;

printf("%.2f",ans);

printf("%.2f",ans);是保留兩位小數n和count都是int型,用float強制轉換浮點型,才能得出帶小數的結果。

12樓:浪子_回頭

格式化輸出:printf("l=%.2lf",l),在%後點一個小數點,然後輸入需要保留小數的數量,就可以輸出想要的結果。

printf()函式是格式化輸出函式, 一般用於向標準輸出裝置按規定格式輸出資訊。

printf()函式的呼叫格式為: printf("《格式化字串》", 《參量表》)。

格式輸出,它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。用於向終端(顯示器、控制檯等)輸出字元。

格式控制由要輸出的文字和資料格式說明組成。要輸出的文字除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

13樓:yangzhi涯

可以在輸出的時候限制小數點位數。

1、當輸出單精度浮點型float變數f時,可以用printf("%.2f", f)來使輸出結果保留兩位有效數字。

2、如果是雙精度浮點數double,就需要用%.2lf來使輸出結果保留2位小數。

下面討論浮點型的兩種型別。

1 .單精度浮點型(float)

單精度浮點型(float )專指佔用32位儲存空間的單精度(single-precision )值。單精度在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。

2 .雙精度型浮點型(double)

雙精度型,正如它的關鍵字"double "表示的,佔用64位的儲存空間。在一些現代的被優化用來進行高速數學計算的處理器上雙精度型實際上比單精度的快。

所有超出人類經驗的數學函式,如sin( ),cos( ) ,tan()和sqrt( )均返回雙精度的值。

14樓:匿名使用者

輸出結果時使用精度:printf("l=%.2lf",l)

15樓:

scanf(%.2f)

關於printf()函式和浮點數

16樓:匿名使用者

舉例:void main()

結果:102.10

102.10102.10

102.10 102.10

102.10 102.10

000102.10

000102.10000102.10

%09.2f: 輸出寬度為9; 2位小數; 不夠就前版面補零。

加負號表示靠權左對齊,否則靠右對齊。

請問如何用c語言printf函式列印小括號

風若遠去何人留 printf要列印小括號,直接列印即可,不需要任何其它處理。比如要列印字串 please input a score 0 100 那麼只要呼叫 printf please input a score 0 100 這樣就可以輸出要求的字串了。在c語言中,除了需要轉義表達的特殊字元外,其...

如何設定雙屏顯示,如何設定顯示器雙屏顯示不同的內容?

掛機的樂趣 可以更改螢幕的左右順序,詳細步驟 1 在電腦桌面空白桌面,滑鼠右鍵開啟選單,選擇顯示設定選項。2 在設定頁面中,開啟顯示選項。3 在右側頁面中,多顯示設定選擇框中,選擇擴充套件這些顯示器選項。4 設定好了之後,我們就可以多屏顯示,在重新排列顯示器選擇框中,我們可以更改螢幕的左右順序。 時...

excel隨機函式問題,如何設定隨機函式從1 10中隨機抽

int rand 10 excel隨機函式問題,如何設定隨機函式從1 10中隨機抽取3個名字,不重複。 悠行專用 1.選定a1 a10,輸入 rand 按ctrl enter 2.在b1輸入公式 rank a1,a 1 a 10 下拉到b3 3.b1 b3就是1 10隨機抽取的三個數每按一次f9,會...