我有兴趣将小数显示为100位小数。这是我到目前为止所提出的。可以看出,这不是我想要的。恩。 1/3应该有3个重复到最后。
有没有办法在Python中实现这一目标?
>>> x = 1./3
>>> "%.100f" % x
'0.3333333333333333148296162562473909929394721984863281250000000000000000000000000000000000000000000000'
>>> y = 1./7
>>> "%.100f" % y
'0.1428571428571428492126926812488818541169166564941406250000000000000000000000000000000000000000000000'
答案 0 :(得分:4)
>>> 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
值并获得您喜欢的任何小数值。