2015-12-15 85 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