Python 如何显示小数点后100位

Python 如何显示小数点后100位,python,Python,我对显示小数点后100位的数字感兴趣。这是我到目前为止提出的问题。可以看出,这并不是我想要的。例1/3应重复3次,直到结束 有没有办法用Python实现这一点 >>> x = 1./3 >>> "%.100f" % x '0.3333333333333333148296162562473909929394721984863281250000000000000000000000000000000000000000000000' >>> y =

我对显示小数点后100位的数字感兴趣。这是我到目前为止提出的问题。可以看出,这并不是我想要的。例1/3应重复3次,直到结束

有没有办法用Python实现这一点

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

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

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

使用

使用

现在,您可以增加
prec
值,并获得您喜欢的任何十进制值


现在,您可以增加
prec
值,并获得您喜欢的任何十进制值。

1./3
并不像您看到的那样存储为无限精度的十进制数。您可能需要查看
十进制
模块。这不是显示问题,这只是浮点算术的工作原理<代码>1./3不会存储为无限精度的十进制数,如您所见。您可能需要查看
十进制
模块。这不是显示问题,这只是浮点算术的工作原理。这清楚地说明了为什么使用浮点是没有用的。尽管它可以表示大的数字(事实上,数字越大,连续浮点数之间的差值就越大),但它只存储大约12位十进制精度数字。这清楚地说明了为什么使用浮点数是没有用的。尽管它可以表示大的数字(事实上,数字越大,连续浮点数之间的差异就越大),但它只存储大约12位小数精度。这个答案如何在现有答案之外添加任何内容?你为什么选择了这么大的一个数字来计算精度?这个答案在现有答案的基础上又有什么补充呢?你为什么选择这么大的一个数字来计算精度?
>>> import decimal
>>> decimal.getcontext().prec = 100
>>> decimal.Decimal(1) / decimal.Decimal(3)
Decimal('0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
>>> x = 1./3
>>> str(x).ljust(100, '0')
'0.33333333333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
import decimal
decimal.getcontext().prec = 10000000
print(decimal.Decimal(22) / decimal.Decimal(7))