簡體   English   中英

如何在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM