我们如何在指定精度的python中计算cube-root?
我想使用十进制类,我的编译器是python 2.5
我尝试过这样的事情:
>>> from decimal import *
>>> x=Decimal("10")
>>> print x**(Decimal("1.0")/3)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
print x**(Decimal("1.0")/3)
File "C:\Python25\lib\decimal.py", line 1752, in __pow__
return context._raise_error(InvalidOperation, 'x ** (non-integer)')
File "C:\Python25\lib\decimal.py", line 2325, in _raise_error
raise error, explanation
InvalidOperation: x ** (non-integer)
>>>
那是在Python 2.6及更高版本上工作但在Python 2.5中没有?有什么解决方案吗?
答案 0 :(得分:2)
绝对适用于2.5.2,也许自2.5以来有变化?
Python 2.5.2 (r252:60911, Jan 20 2010, 21:48:48)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from decimal import Decimal
>>> x=Decimal("10")
>>> x**(Decimal("1.0")/3)
Decimal('2.154434690031883721759293566')
答案 1 :(得分:1)
根据http://www.python.org/download/releases/2.5.5/NEWS.txt的发行说明,2.5.2中的十进制模块有很多错误修复/更新。如果您使用的是2.5.0或2.5.1,是否可以升级到2.5.2?