當前位置:首頁 » 格式模板 » g格式符

g格式符

發布時間: 2021-03-20 10:19:15

Ⅰ c語言 格式轉換符 %f %e %g 有什麼區別

%f 表示按浮點數的格式輸出

%e 表示按指數形式的浮點數的格式輸出

%g 表示自動選擇合適的版表示法輸出


示常式序如權下:

#include<stdio.h>
voidmain()
{
floatf=3.1415926;
printf("%f ",f);//輸出3.141593
printf("%e ",f);//輸出3.141593e+000
printf("%g ",f);//輸出3.14159
}

Ⅱ C語言轉換格式符大全

int printf(const char *format,[argument]);
format 參數輸出的格式,定義格式為:
%[flags][width][.perc] [F|N|h|l]type
規定數據輸出方式,具體如下:
1.type 含義如下:
d 有符號10進制整數
i 有符號10進制整數
o 有符號8進制整數
u 無符號10進制整數
x 無符號的16進制數字,並以小寫abcdef表示
X 無符號的16進制數字,並以大寫ABCDEF表示
F/f 浮點數
E/e 用科學表示格式的浮點數
g 使用%f和%e表示中的總的位數表示最短的來表示浮點數 G 同g格式,但表示為指數
c 單個字元
s 字元串
% 顯示百分號本身
p 顯示一個指針,near指針表示為:XXXX
far 指針表示為:XXXX:YYYY
n 相連參量應是一個指針,其中存放已寫字元的個數
2.flags 規定輸出格式,取值和含義如下:
無 右對齊,左邊填充0和空格
- 左對齊,右邊填充空格
+ 在數字前增加符號 + 或 -
一個空格 只對負數顯示符號
# 當type=c,s,d,i,u時沒有影響
type=o,x,X時,分別在數值前增加'0',"0x","0X"
type=e,E,f時,總是使用小數點
type=g,G時,除了數值為0外總是顯示小數點 3.width 用於控制顯示數值的寬度,取值和含義如下n(n=1,2,3...) 寬度至少為n位,不夠以空格填充
0n(n=1,2,3...) 寬度至少為n位,不夠左邊以0填充 * 格
式列表中,下一個參數還是width 4.prec 用於控制小數點後面的位數,取值和含義如下:
無 按預設精度顯示
0 當type=d,i,o,u,x時,沒有影響
type=e,E,f時,不顯示小數點
n(n=1,2,3...) 當type=e,E,f時表示的最大小數位數
type=其他,表示顯示的最大寬度 .*
格式列表中,下一個參數還是width
5.F|N|h|l 表示指針是否是遠指針或整數是否是長整數
F 遠指針
n 近指針
h短整數或單精度浮點數
l 長整數或雙精度浮點數
1.一般格式
printf(格式控制,輸出表列)
例如:printf("i=%d,ch=%c\n",i,ch);
說明:
(1)「格式控制」是用雙撇號括起來的字元串,也稱「轉換控制字元串」,它包括兩種信息:
①格式說明:由「%」和格式字元組成,它的作用是將輸出的數據轉換為指定的格式輸出。
②普通字元,即需要原樣輸出的字元。
(2)「輸出表列」是需要輸出的一些數據,可以是表達式
(3)printf函數的一般形式可以表示為
printf(參數1,參數2,……,參數n)
功能是將參數2~參數n按參數1給定的格式輸出
2.格式字元(9種)
(1)d(或i)格式符。用來輸出十進制整數,有以下幾種用法:
①%d,按整型數據的實際長度輸出。
②%md,m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
③%ld(%mld 也可),輸出長整型數據。
例如:long a=123456;
printf("%ld",a);
(2)o格式符,以八進制數形式輸出整數。格式:%o,%mo,%lo,%mlo都可。
(3)x(或X)格式符,以十六進制數形式輸出整數。格式:%x,%mx,%lx,%mlx都可。
(4)u格式符,用來輸出unsigned型數據,即無符號數,以十進制數形式輸出。格式:%u,%mu,%lu都可。
參見:li4-3.c/*無符號數據的輸出*/
(5)c格式符,用來輸出一個字元。格式:%c,%mc都可。
(6)s格式符,用來輸出一個字元串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
參見:li4-5.c /*字元串的輸出*/
(7)f格式符,用來輸出實數(包括單、雙精度),以小數形式輸出。格式:%f,%m.nf,%-m.nf都可。
注意:單精度實數的有效位數一般為7位,雙精度為16位。
參見:li4-6.c/*輸出單精度實數時的有效位數*/
li4-7.c/*輸出雙精度實數時的有效位數*/
li4-8.c/*輸出實數時指定小數位數*/
(8)e(或E)格式符,以指數形式輸出實數。格式:%e,%m.ne,%-m.ne都可。
(9)g(或G)格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出時占寬度較小的一種)。
3.說明
(1)除了X、E、G(用大寫字母表示)外,其他格式字元必須用小寫字母;
(2)「格式控制」字元串內可以包含轉義字元;
(3)如果想輸出字元「%」,則應該在「格式控制」字元串中用連續兩個%表示,如:
printf("%f%%",1.0/3);
(4)格式字元表參見下表
表4.1 printf格式字元
格式字元 說 明
d,i 以帶符號的十進制形式輸出整數(正數不輸出符號)
o 以八進制無符號形式輸出整數(不輸出前導符0)
x,X 以十六進制無符號形式輸出整數(不輸出前導符0x),用x則輸出十六進制數的a~f時以小寫形式輸出,用X時,則以大寫字母輸出
u 以無符號十進制形式輸出整數
c 以字元形式輸出,只輸出一個字元
s 輸出字元串
f 以小數形式輸出單、雙精度數,隱含輸出6位小數
e,E 以指數形式輸出實數
g,G 選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0
表4.2 printf的附加格式說明字元
字元
說明
字母l
用於長整型整數,可加在格式符d、o、x、u前面
m(代表一個正整數)
數據最小寬度
n(代表一個正整數)
對實數,表示輸出n位小數;對字元串,表示截取的字元個數
-
輸出的數字或字元在域內向左靠

Ⅲ 求教C語言g格式符的問題

因為"g格式符 系統自動選f格式或e格式輸出 選擇其中長度較短的格式 不輸出無意義的0"這種說法根本就是錯誤的

正確的解釋是
如果指數小於-4或大於等於精度,則用%e或%E格式輸出,否則用%f格式輸出.尾部的0和小數點不列印
[k&R <The C Programming Language> 中文版 第二版.新版 P135]

Ⅳ c程序中的printf輸入%g格式符

很高興為您解答!
若用%G,則指數輸出的e變為E。

Ⅳ C語言的所有格式符。

一、格式符含義
1、d格式符:按十進制格式輸出。
%d 輸出數字長度為變數數值的實際長度
%md 輸出m位(不足補空格,大於m位時按實際長度輸出)
%ld,%mld l(小寫字母L)表示輸出「長整型」數據
%0md,%0mld 0(數字0)表示位數不足m時補0
註:%後面的m(位數控制)、0(位數不足補0)對於其他格式符也適用。
例:(□表示空格)
int i=123;
long j=123456;
printf("%d□5d□05d,□ld□8ld□08ld",i,i,i,j,j,j);
輸出:123□□□123□00123,□123456□□□123456□00123456
2、o(字母)格式符:按八進制格式輸出。(不會出現負數格式)
3、x格式符:按十六進制格式輸出。(不會出現負數格式)
4、u格式符:用於輸出unsigned類型數據。
例:main()
{
unsigned int a=65535;
int b=-2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("a=%d,%o,%x,%u\n",b,b,b,b);
}
輸出:a=-1,177777,ffff,65535
b=-2,177776,fffe,65534
5、c格式符:以字元形式輸出。
6、s格式符:以字元串格式輸出。
例:printf("%s","CHINA");
%ms m指定寬度(不足時左補空格,大於時按實際寬度輸出)
%-ms 左對齊,不足m時右補空格
%m.ns 輸出佔m個字元位置,其中字元數最多n個,左補空格
%-m.ns 同上,右補空格
7、f格式符:按實數格式輸出。
%f 按實數格式輸出,整數部分按實際位數輸出,6位小數
%m.nf 總位數m(含小數點),其中n位小數
%-m.nf 同上,左對齊
例:main()
{ float x, y;
x=111111.111; y=222222.222;
printf("%f", x+y);
}
程序輸出: 333333.328152(實數運算中誤差不可避免)
例:main()
{ double x,y; double x2,y2;
x=1111111111111.111111111; y=2222222222222.222222222;
x2=1111111111111.111; y2=2222222222222.222;
printf("%f %f", x+y, x2+y2); /* 13位整數,9位小數 */
}
程序輸出: 3333333333333.333010 3333333333333.333010(相同)
注意
從以上兩例可以看出,實數運算中誤差不可避免,double比float精度高。
float實數(單精度)的有效位數是7位,double實數(雙精度)的有效位數是16位,超過有效位數的輸出和輸入均無意義。
例:
main()
{ float f=123.456;
printf("%f□□%10f□□%10.2f□□%.2f□□%-10.2f",f,f,f,f,f);
}
輸出結果:
123.455994□□123.455994□□□□□□123.46□□123.46□□123.46
8、e格式符:以指數形式輸出實數。%e 輸出13位,其中:1位整數,1位小數點,6位小數,5位指數(含字元e和指數的符號)
9、g格式符:根據數值大小,自動選擇f或e格式輸出。
二、使用注意
1、%是printf()的格式說明符,若要直接輸出字元%,在格式控制中使用兩個連續的%。
例:printf("%f%%", 1.0/3) 輸出: 0.333333%。
2、通常在有格式字元o和x按八進制和十六進制形式輸出整數時,在數值前不出現0和0x,可在%和格式字元間插入#來實現。
例:printf(「%o,%#o,%x,%#x\n」,10,10,10,10);
輸出:12,012,a,0xa
3、指定輸出寬度的同時指定左對齊可在寬度前插入「—」來實現。

Ⅵ 計算機C語言f,e和g格式符的問題

e是指數形式,
f是浮點數形式,
e+002
就是前面那個數字
乘以10的2次方程
g的不知道啥格式!~!~

Ⅶ 請問在c語言中,格式輸出函數printf()中,格式字元中,對於f,e,g格式符用「整型數1,整型數2」的形式在指

就是你指定的位寬啊,你指定輸出的位寬

Ⅷ C語言中什麼是格式符

格式符即在printf()中的%x

d/i 以大符號的十進制形式輸出整數(整數不輸出符號)
o 以八進制無符號形式輸出整數(不輸出前導符)
x,X 以十六進制無符號形式輸出整數(大小寫)
u 用於輸出unsigned類型數據
f 實數格式輸出,6位小數
e 以指數形式輸出實數,輸出13位,其中:1位整數,1位小數點,6位小數,5位指數(含字元e和指數的符號)
g 根據數值大小,自動選擇f或e格式輸出。
c 以字元形式輸出,只輸出一個字元
s 輸出字元串

另: printf("%#x\n",20);
輸出 0x14 (如果%#x中沒有 # , 則輸出14沒有0x表示)

Ⅸ 格式指示符e和g具體表示的是哪種類型的數據

e和g都表示float或者double型輸出。
但是e是按照指數表示形式。
g是自動選取%f和%e中較短的格式輸出。而且不輸出沒有意義的0。

Ⅹ g格式的相關問題

情況正常 因為你是你浮點型輸出的

熱點內容
塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
版面217 發布:2021-03-31 13:04:18 瀏覽:587
知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
收支模板 發布:2021-03-31 13:00:43 瀏覽:17
電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731