C语言中的各输出格式含义
%g是C語言printf()函數的一個輸出格式類型,它表示以%f%e中較短的輸出寬度輸出單、雙精度實數,在指數小于-4或者大于等于精度時使用%e格式
printf()輸出格式類型說明:
輸出類型? ?格式字符意義
a????????浮點數、十六進制數字和p-計數法(C99)
A????????浮點數、十六進制數字和p-計數法(C99)
c? 輸出單個字符
d? 以十進制形式輸出帶符號整數(正數不輸出符號)
e? 以指數形式輸出單、雙精度實數??指數標識為e
E? 以指數形式輸出單、雙精度實數??指數標識為E
f? 以小數形式輸出單、雙精度實數
G???????以%f%E中較短的輸出寬度輸出單、雙精度實數,在指數小于-4或者大于等于精度時使用%E格式
i?????????有符號十進制整數(與%d相同)
o? 以八進制形式輸出無符號整數(不輸出前綴O)
p???????輸出內存地址形式數據(16進制)
s? 輸出字符串
x? 以十六進制形式輸出無符號整數(不輸出前綴OX)
X 以十六進制形式輸出無符號整數(不輸出前綴OX)
u???????以十進制形式輸出無符號整數
?
PS:?有關%g輸出的補充說明
%g用于打印浮點型數據時,會去掉多余的零,至多保留六位有效數字(不同于%e的默認保留小數點后6位)
當%g用于打印超過6位的浮點型數據時,因為精度問題,%f不得不輸出一個不精確的超過六位的數字,%e也是同樣,而%g此時會選擇%e格式進行輸出,并且按第一條要求,去掉多余的零,并且四舍五入到6位數字。這是《C?Primer?Plus》中所說的超過精度的時候的情況。??(可見,這個6位,是按float類型精度來計算的。)
當一個數字的絕對值很小的時候,要表示這個數字所需要的字符數目就會多到讓人難以接受。舉例而言,如果我們把π*10^-10寫作0.00000000000314159就會顯得非常丑陋不雅,反之,如果我們寫作3.14159e-10,就不但簡潔而且易讀好懂。當指數是-4時,這兩種表現形式大小相同。對于比較小的數值,除非該數的指數小于或者等于-5,%g才會采用科學技術發來表示,即,以%e的格式進行輸出。
?本回答由電腦網絡分類達人 張弦推薦
總結
以上是生活随笔為你收集整理的C语言中的各输出格式含义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四元数转欧拉角程序
- 下一篇: Hex与float之间相互转换