簡體   English   中英

如何顯示一個十進制數字到100個小數位

[英]how to display a decimal number to 100 decimal places

我感興趣的是顯示一個小數到100個小數位。 到目前為止,這是我提出的內容。 可以看出,這不是我想要的。 恩。 1/3應該在末尾重復3。

有沒有辦法用Python做到這一點?

>>> x = 1./3
>>> "%.100f" % x
'0.3333333333333333148296162562473909929394721984863281250000000000000000000000000000000000000000000000'
>>> y = 1./7
>>> "%.100f" % y
'0.1428571428571428492126926812488818541169166564941406250000000000000000000000000000000000000000000000'

使用十進制模塊

>>> import decimal
>>> decimal.getcontext().prec = 100
>>> decimal.Decimal(1) / decimal.Decimal(3)
Decimal('0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')

您遇到的問題是浮點數的精度有限。 如果您還需要更多,則需要使用其他數據類型。 我建議研究decimal模塊,該模塊可以支持任意大的精度。

>>> x = 1./3
>>> str(x).ljust(100, '0')
'0.33333333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
import decimal
decimal.getcontext().prec = 10000000
print(decimal.Decimal(22) / decimal.Decimal(7))

現在,您可以增加prec值並獲得所需的任何十進制值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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