我有一个很大的十进制数,比如2的平方根,我想查看前100个十进制数。但是,float不支持这种功能:1.4142135623730951454746218587388284504413604736328125000000000000000000000000000000000000000000000000
100位浮点python
这样做的最佳方法是什么?我不想输入任何东西,最好是
我有一个很大的十进制数,比如2的平方根,我想查看前100个十进制数。但是,float不支持这种功能:1.4142135623730951454746218587388284504413604736328125000000000000000000000000000000000000000000000000
100位浮点python
这样做的最佳方法是什么?我不想输入任何东西,最好是
如果您的精度要求是100位十进制数字,我认为您必须使用decimal.Decimal
。
float
in Python
不是为这种精确计算而设计的。
使用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或Python3 API
你应该传递字符串 –
@ IgnacioVazquez-Abrams:不,它确实是浮点的,因为[docs](https://docs.python.org/2/library/decimal.html)表示:“十进制模块提供对十进制浮点运算的支持。” –
它可以做平方根吗? – plugwash
恐怕你将不得不进口'小数找到更详细.Decimal'。 – roippi
看看这个网站:http://floating-point-gui.de/ – SethMMorton
mpmath模块也将为此工作http://mpmath.org/ –