如何将一个小数显示到100位小数
我想把一个小数显示到小数点后100位。到目前为止,我做了这些。可以看到,这并不是我想要的。例如,1/3应该是3一直重复到最后。
有没有办法在Python中做到这一点呢?
>>> x = 1./3
>>> "%.100f" % x
'0.3333333333333333148296162562473909929394721984863281250000000000000000000000000000000000000000000000'
>>> y = 1./7
>>> "%.100f" % y
'0.1428571428571428492126926812488818541169166564941406250000000000000000000000000000000000000000000000'
4 个回答
1
>>> x = 1./3
>>> str(x).ljust(100, '0')
'0.33333333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
1
你遇到的问题是浮点数的精度有限。如果你需要更高的精度,就得使用不同的数据类型。我建议你看看decimal
模块,它可以支持非常高的精度。
4
使用 decimal模块。
>>> import decimal
>>> decimal.getcontext().prec = 100
>>> decimal.Decimal(1) / decimal.Decimal(3)
Decimal('0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')