2017-03-24 43 views
1

我想顯示在科學記數法表示:顯示在科學記數法的一些具體數字

-407.45833 

到目前爲止,我用這個:

 i = '%E' % Decimal(i) 

結果:

-4.074583E+02 

現在我的問題:我怎麼能再添加一個數字,所以它看起來像這樣:?

-4.074583E+002 

我知道我應該找我從Python string formatting表中的答案選擇正確的格式佈局,但我不能找到它。有人可以告訴我結果以及在哪裏找到它嗎?

+0

,我不相信有該功能......但你可以做到它手動:( – abccd

+0

@abccd如果我改變這個「%.2E」我得到「4.07E + 02」。我希望有一些類似的數字在末尾 – Vipr0

+0

不,不幸的是,不過,你爲什麼需要那麼如果是E + 0123會發生什麼?現在有四位數字...... – abccd

回答

0

不幸的是沒有任何直接的方式使用字符串格式化後有三個數字+。一個簡單的方法來取代它是因爲我們知道的是,指數形式都存儲爲字符串,所以所有的字符串方法都可以使用它。

我寫了一個小功能,需要一個正規科學記數法,後+回到三位數格式化符號:

from decimal import Decimal 
def pretty(notation, n): 
    if '+' in notation: 
     return "+".join([notation.split('+')[0],notation.split('+')[1].zfill(n)]) 
    return "-".join([notation.split('-')[0],notation.split('-')[1].zfill(n)]) 

i = '%E' % Decimal(-407.45833) 
print(pretty(i,3)) # leave three digits 
+0

完美的作品!謝謝! – Vipr0

+0

這很棒,如果它真的幫助了你,你可以通過檢查mark來將我的答案標記爲已接受。祝你有美好的一天:) – abccd