2011-12-14 33 views
3

我試圖打印1.2e-08作爲12e-09出於顯示目的,但似乎無法獲取格式說明符。在python中以非標準符號表示浮點數?

有沒有辦法以非標準的形式表達浮點數,而不訴諸字符串操作或使用正則表達式?

編輯:如果問題不清楚,我正在尋找一些東西,可以讓我用任何比例表示任何數字,例如,如果我想按比例縮放1e-12的任何比例,那麼我應該有類似12000e-12

謝謝

回答

6

檢查出十進制模塊。它應該能夠以你想要的格式輸出。

http://docs.python.org/library/decimal.html

對於你所描述的(工程符號)是什麼,有一個to_eng_string()方法。

編輯

在你澄清的光,你可以建立在零件的數量:這將打印

myNumber = 1.2e-8 
myBase = 1e-12 
mantissa = myNumber/myBase 
print "{0:1}{1:s}".format(mantissa, "{0:1}".format(myBase)[1:]) 

: 12000.0e-12

如果你知道你會總是爲尾數轉爲整數,您可以相應地調整格式。

+0

我已經檢查過,我知道十進制模塊它不會爲所有的基地,例如,如果我想表示一切縮放到1e-12它不會工作。 – anijhaw 2011-12-14 01:17:42