2015-12-15 47 views
6

我有一个很大的十进制数,比如2的平方根,我想查看前100个十进制数。但是,float不支持这种功能:1.4142135623730951454746218587388284504413604736328125000000000000000000000000000000000000000000000000100位浮点python

这样做的最佳方法是什么?我不想输入任何东西,最好是

+4

恐怕你将不得不进口'小数找到更详细.Decimal'。 – roippi

+0

看看这个网站:http://floating-point-gui.de/ – SethMMorton

+0

mpmath模块也将为此工作http://mpmath.org/ –

回答

6

如果您的精度要求是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 APIPython3 API

+0

你应该传递字符串 –

+0

@ IgnacioVazquez-Abrams:不,它确实是浮点的,因为[docs](https://docs.python.org/2/library/decimal.html)表示:“十进制模块提供对十进制浮点运算的支持。” –

+0

它可以做平方根吗? – plugwash