文章分享

開放、平等、協(xié)作、快速、分享

當前位置:首頁>文章分享

C中printf的輸出格式類型和%g的用法

摘錄:HCTech 無錫和控電子   時間:2020-08-07   訪問量:6279

%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輸出的補充說明

  1. %g用于打印浮點型數據時,會去掉多余的零,至多保留六位有效數字(不同于%e的默認保留小數點后6位)

  2. 當%g用于打印超過6位的浮點型數據時,因為精度問題,%f不得不輸出一個不精確的超過六位的數字,%e也是同樣,而%g此時會選擇%e格式進行輸出,并且按第一條要求,去掉多余的零,并且四舍五入到6位數字。這是《C Primer Plus》中所說的超過精度的時候的情況。  (可見,這個6位,是按float類型精度來計算的。)

  3. 當一個數字的絕對值很小的時候,要表示這個數字所需要的字符數目就會多到讓人難以接受。舉例而言,如果我們把π*10^-10寫作0.00000000000314159就會顯得非常丑陋不雅,反之,如果我們寫作3.14159e-10,就不但簡潔而且易讀好懂。當指數是-4時,這兩種表現形式大小相同。對于比較小的數值,除非該數的指數小于或者等于-5,%g才會采用科學技術發(fā)來表示,即,以%e的格式進行輸出。


上一篇:printf輸出格式

下一篇:(一)esp8266透傳簡單使用

在線咨詢

點擊這里給我發(fā)消息 售前咨詢專員

點擊這里給我發(fā)消息 售后服務專員

在線咨詢

免費通話

24小時免費咨詢

請輸入您的聯系電話,座機請加區(qū)號

免費通話

微信掃一掃

微信聯系
返回頂部