![](/img/trans.png)
[英]how to convert integer to exponential in different forms for the same value in python
[英]How to convert exponential value to string format in python?
我正在做一些給出非常小的十進制數的計算,例如0.0000082
當我將它保存在變量中時,它會變為指數形式。 我最終需要將結果作為字符串。 因此,使用str()
轉換結果是不可能的,因為它將e
保留在字符串中。 我需要字符串恰好有8個小數位。 有什么辦法可以保持8位精度完好嗎?
另一個例子: 5.8e-06
應轉換為'0.00000580'
最終字符串中的尾隨零並不重要。 我需要在其他地方使用該字符串。 所以,這不應該在print()
函數中完成。
指數表示法不是數字的固有屬性(存儲為二進制浮點值)。 它只是將數字轉換為帶有str
的字符串時的默認表示。 如果使用format
函數將數字轉換為字符串,則可以指定自己的格式選項。 嘗試這樣的事情:
format(5.8e-06, '.8f')
格式說明符中的8
表示它使用8位精度,而f
要求將其寫為普通小數而不使用指數表示法。 您可以在文檔中閱讀有關格式符號的更多信息。
另一個想法:
'{0:.7f}'.format(0.0000082)
你可以嘗試:
import decimal
print(str(decimal.Decimal(5.8e-06))[:10])
>>> 0.00000580
print ("{:.6f}".format(1e-4))
將打印出來
0.000100
你可以用print:
>>> number = 1e-08
>>> number
1e-08
>>>print("{:.12f}".format(float(number)))
0.000000010000
或者您可以轉換數字並將其存儲在字符串中:
>>> str1 = "{:.12f}".format(float(number))
>>> str1
'0.000000010000'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.