我们如何在python中以指定的精度计算cube-root?

时间:2011-03-04 01:49:34

标签: python python-2.6

我们如何在指定精度的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中没有?有什么解决方案吗?

2 个答案:

答案 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?