我有一個很大的十進制數,比如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/ –