[英]How to convert exponent in Python and get rid of the 'e+'?
我從 Python 開始,我最近遇到了一個具有大值的數據集。 我的一個字段有一個如下所示的值列表: 1.3212724310201994e+18
(注意數字末尾的e+18
)。
如何將其轉換為浮點數並刪除指數而不影響值?
您可以對數據的每個元素使用Decimal
模塊中的decimal
:
from decimal import Decimal
s = 1.3212724310201994e+18
print(Decimal(s))
Output:
1321272431020199424
首先,這個數字已經是一個浮點數,你不需要改變這個。 唯一的問題是您希望更好地控制如何將其轉換為用於 output 目的的字符串。
默認情況下,超過一定大小的浮點數使用指數表示法轉換為字符串(“e”代表“*10^”)。 但是,如果要將其轉換為不帶指數表示法的字符串,則可以使用f
格式說明符,例如:
a = 1.3212724310201994e+18
print("{:f}".format(a))
給出:
1321272431020199424.000000
或在 Python 3 中使用“f-strings”:
print(f"{a:f}")
這里第一個f
告訴它使用 f 字符串, :f
是浮點格式說明符。
您還可以指定應顯示的小數位數,例如:
>>> print(f"{a:.2f}") # 2 decimal places
1321272431020199424.00
>>> print(f"{a:.0f}") # no decimal places
1321272431020199424
請注意,Python 中浮點數的內部表示使用 53 位二進制精度(大約 10 ^ 16 的一部分),因此在這種情況下,您的大約 10 ^ 18 的數量值不會准確存儲直到最近的 integer,更不用說任何小數位了。 但是,上面給出了如何控制用於字符串轉換的格式的一般原則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.