如何将一个小数显示到100位小数

0 投票
4 回答
1478 浏览
提问于 2025-04-17 20:43

我想把一个小数显示到小数点后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')

撰写回答