如何将十进制数显示为100位小数

时间:2014-03-04 03:50:55

标签: python

我有兴趣将小数显示为100位小数。这是我到目前为止所提出的。可以看出,这不是我想要的。恩。 1/3应该有3个重复到最后。

有没有办法在Python中实现这一目标?

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

4 个答案:

答案 0 :(得分:4)

使用decimal module

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

答案 1 :(得分:1)

您遇到的问题是浮点数的精度有限。如果您需要更多,则需要使用不同的数据类型。我建议调查decimal模块,它可以支持任意大的精度。

答案 2 :(得分:1)

>>> x = 1./3
>>> str(x).ljust(100, '0')
'0.33333333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

答案 3 :(得分:-2)

import decimal
decimal.getcontext().prec = 10000000
print(decimal.Decimal(22) / decimal.Decimal(7))

现在,您可以增加prec值并获得您喜欢的任何小数值。