2017-05-05 41 views
0

在shell腳本中,我想將23.343輸出爲2.334E + 1。當使用printf "%.3E\n" 23.343時,我得到了2.334E + 01。那麼如何通過printf中的一些技巧去除0?還有一種方法可以通過printf輸出上述數字爲0.233E + 02?如何在printf中刪除科學記數法中的0

回答

1

隨着printf本身,你不這樣做:

選擇e,E雙參數呈圓形,並且轉換的風格[ - ] d.ddde±日哪裏有小數點前有一位指數總是包含至少兩個數字;如果該值爲零,則指數爲00.

但是在例如擊,可以手動從指數中刪除零:

$ x=$(printf "%.3E\n" 23.343) 
$ $ echo "${x/E+0/E+}" 
2.334E+1 

(我錯過了問題的另一部分。)

+0

謝謝!是否可以輸出數字爲0.233E + 02? – user6948979

+0

@ user6948979,哦,我誤讀了,我只注意到了指數部分。同樣的手冊說小數點前總是有一位數字......並修復這將會有點多... – ilkkachu