2014-03-31 51 views
3

我有一個Python程序,我計算一些概率,但在一些答案中我得到f.ex. 8208e-06,但我希望我的號碼以常規形式0.000008出來......我該怎麼做?如何避免python中的e-05

+1

你是什麼意思出來 - 你打印他們,格式是意外? – blueberryfields

+0

好吧,是的。格式如8208e-06所述,但我需要用「正常形式」書寫。這可能嗎? – user2795095

+0

可能重複[如何在Python中禁用科學記數法?](http://stackoverflow.com/questions/658763/how-do-i-suppress-scientific-notation-in-python) – Jasper

回答

8

可以使用f格式說明和指定的小數位數:如果要刪除尾隨零

>>> '{:f}'.format(1e-6) 
'0.000001' 
>>> '{:f}'.format(1e-7) 
'0.000000' 

>>> '{:.10f}'.format(1e-10) 
'0.0000000001' 

精密默認爲6,所以只是rstrip他們:

>>> '{:f}'.format(1.1) 
'1.100000' 
>>> '{:f}'.format(1.1).rstrip('0') 
'1.1' 

默認情況下使用轉換成字符串時str(或repr)蟒返回給定浮子,其可以是所述指數表示法最短的表示。

這通常你想要的是,因爲十進制表示可以顯示用戶的應用程序通常不希望表示錯誤,不小心看到:

>>> '{:.16f}'.format(1.1) 
'1.1000000000000001' 
>>> 1.1 
1.1 
+0

謝謝,完美的作品! :)高度讚賞它:) – user2795095