開(kāi)放、平等、協(xié)作、快速、分享
%g是C語(yǔ)言printf()函數(shù)的一個(gè)輸出格式類型,它表示以%f%e中較短的輸出寬度輸出單、雙精度實(shí)數(shù),在指數(shù)小于-4或者大于等于精度時(shí)使用%e格式
printf()輸出格式類型說(shuō)明:
輸出類型 格式字符意義
a 浮點(diǎn)數(shù)、十六進(jìn)制數(shù)字和p-計(jì)數(shù)法(C99)
A 浮點(diǎn)數(shù)、十六進(jìn)制數(shù)字和p-計(jì)數(shù)法(C99)
c 輸出單個(gè)字符
d 以十進(jìn)制形式輸出帶符號(hào)整數(shù)(正數(shù)不輸出符號(hào))
e 以指數(shù)形式輸出單、雙精度實(shí)數(shù) 指數(shù)標(biāo)識(shí)為e
E 以指數(shù)形式輸出單、雙精度實(shí)數(shù) 指數(shù)標(biāo)識(shí)為E
f 以小數(shù)形式輸出單、雙精度實(shí)數(shù)
G 以%f%E中較短的輸出寬度輸出單、雙精度實(shí)數(shù),在指數(shù)小于-4或者大于等于精度時(shí)使用%E格式
i 有符號(hào)十進(jìn)制整數(shù)(與%d相同)
o 以八進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴O)
p 輸出內(nèi)存地址形式數(shù)據(jù)(16進(jìn)制)
s 輸出字符串
x 以十六進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴OX)
X 以十六進(jìn)制形式輸出無(wú)符號(hào)整數(shù)(不輸出前綴OX)
u 以十進(jìn)制形式輸出無(wú)符號(hào)整數(shù)
PS: 有關(guān)%g輸出的補(bǔ)充說(shuō)明
%g用于打印浮點(diǎn)型數(shù)據(jù)時(shí),會(huì)去掉多余的零,至多保留六位有效數(shù)字(不同于%e的默認(rèn)保留小數(shù)點(diǎn)后6位)
當(dāng)%g用于打印超過(guò)6位的浮點(diǎn)型數(shù)據(jù)時(shí),因?yàn)榫葐?wèn)題,%f不得不輸出一個(gè)不精確的超過(guò)六位的數(shù)字,%e也是同樣,而%g此時(shí)會(huì)選擇%e格式進(jìn)行輸出,并且按第一條要求,去掉多余的零,并且四舍五入到6位數(shù)字。這是《C Primer Plus》中所說(shuō)的超過(guò)精度的時(shí)候的情況。 (可見(jiàn),這個(gè)6位,是按float類型精度來(lái)計(jì)算的。)
當(dāng)一個(gè)數(shù)字的絕對(duì)值很小的時(shí)候,要表示這個(gè)數(shù)字所需要的字符數(shù)目就會(huì)多到讓人難以接受。舉例而言,如果我們把π*10^-10寫(xiě)作0.00000000000314159就會(huì)顯得非常丑陋不雅,反之,如果我們寫(xiě)作3.14159e-10,就不但簡(jiǎn)潔而且易讀好懂。當(dāng)指數(shù)是-4時(shí),這兩種表現(xiàn)形式大小相同。對(duì)于比較小的數(shù)值,除非該數(shù)的指數(shù)小于或者等于-5,%g才會(huì)采用科學(xué)技術(shù)發(fā)來(lái)表示,即,以%e的格式進(jìn)行輸出。
24小時(shí)免費(fèi)咨詢
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)