1
我想在Python中有一個函數,可以處理從非常大到非常小,甚至大數小數部分的小數部分的各種數字(請參閱下面的代碼)。我需要將數字轉換爲字符串,並刪除它可能具有的任何科學記號。我還需要刪除小數點後面的零。這是迄今爲止我最接近的解決方案,它適用於大多數數字,但並非如你所見。Python的任何數字非科學字符串
支持麻煩的數字有什麼改進嗎?
def number2string(a):
b = '{0:.15f}'.format(a)
b = b.rstrip('0') # remove trailing zeros right of decimal
b = b.rstrip('.') # remove trailing decimal if exists
print a,"->",b
number2string(3)
number2string(3.14)
number2string(3.14E+12)
number2string(3.14e-7)
number2string(1234567.007)
number2string(123456789)
number2string(.00000000000000123)
結果:
3 -> 3
3.14 -> 3.14
3.14e+12 -> 3140000000000
3.14e-07 -> 0.000000314
1234567.007 -> 1234567.006999999983236
123456789-> 123456789
1.23e-15 -> 0.000000000000001
你是否看了十進制模塊? – wwii
我試過了,但我看不到如何應用它並解決上述問題 – panofish
哪個麻煩的號碼不能用於您的功能? – wwii