100 位浮点数 python

100 digit floating point python

我有一个很大的小数,比如2的平方根,我想查看前100位小数。但是,float 不支持此功能:1.4142135623730951454746218587388284504413604736328125000000000000000000000000000000000000000000000000

最好的方法是什么?我不想导入任何东西,最好

如果你的精度要求是100位小数,我想你必须使用decimal.Decimal

Python中的float不是为这种精确计算而设计的

使用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')

您可以在此 Python2 API or Python3 API

中找到更多详细信息