100位浮点蟒蛇

Noo*_*ooo 7 python floating-point precision

我有一个大的十进制数,例如2的平方根,我想查看前100个十进制数字.但是,float不支持此功能:1.4142135623730951454746218587388284504413604736328125000000000000000000000000000000000000000000000000

做这个的最好方式是什么?我不想进口任何东西,最好是

res*_*sec 8

如果您对精度的要求是100位十进制数字,我认为您必须使用decimal.Decimal.

floatPython不适合这种精确计算的.

使用decimal.Decimal几乎一样简单float,你可以做+,-,*,/和其他一些常用的计算直接之间的任何decimal.Decimal不考虑.

此外,decimal.Decimal支持直接设置您想要的精度:

>>> from decimal import getcontext, Decimal
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
>>> getcontext().prec = 28
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')
Run Code Online (Sandbox Code Playgroud)

您可以在此Python2 APIPython3 API中找到更多详细信息