我在使用十進制值時遇到了困難,在某些情況下需要使用十進制值,而在其他情況下則需要使用十進制值作爲字符串。具體來說,我有一個利率列表,例如:Python中的小數和科學記數法問題2.6.6
rates=[0.1,0.000001,0.0000001]
而我正在使用這些來指定圖像的壓縮率。我需要最初將這些值作爲數字,因爲我需要能夠對它們進行排序以確保它們按特定順序排列。我還希望能夠將這些值中的每一個轉換爲字符串,以便1)將速率嵌入文件名中,2)將速率和其他詳細信息記錄在CSV文件中。第一個問題是,任何浮動超過6位小數在科學格式時轉換爲字符串:
>>> str(0.0000001)
'1e-07'
所以我使用Python的十進制模塊嘗試,但它也把一些浮科學記數法(貌似相反到我讀過的文檔)。例如:
>>> Decimal('1.0000001')
Decimal('1.0000001')
# So far so good, it doesn't convert to scientific notation with 7 decimal places
>>> Decimal('0.0000001')
Decimal('1E-7')
# Scientific notation, back where I started.
我也正在尋找字符串格式化建議在多個職位,但我沒有任何運氣。任何建議和指針都受到這位Python新手的讚賞。
你會知道該怎麼做同樣的事情在Python 2.6.6? – sttaq 2017-10-05 12:55:31