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
中找到更多详细信息
我有一个很大的小数,比如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
中找到更多详细信息