2013-03-15 44 views

回答

3

根据the documentation,有一个功能power(x,y)

随着两个参数,计算x **年。如果x是负数,那么y必须是 积分。结果将是不精确的,除非y是整数并且结果是有限的并且可以精确地用'精确'数字表示。 结果应始终进行正确舍入,使用当前线程的上下文

的舍入模式 这意味着功率(X,1.0/N)应该给你你想要的东西。

你也可以采取次方根用

nthRoot = Decimal(x) ** (Decimal(1.0)/Decimal(n)) 

不知道,如果你考虑上述这两个“内置”,你必须计算n的倒数明确得到次方根。

+0

以'1.0/n'作为'Decimal'的参数,你不会在'Decimal'看到它之前降低到浮点精度吗?比较'十进制(1/3)'和'十进制(1)/ 3'。 – DSM 2013-03-15 03:45:26

+0

@DSM - 有效点。做了一个编辑。这是否工作? – Floris 2013-03-15 03:46:54

+0

似乎!而且它比通过'.ln()'更简单 - 当我第一次尝试时,我挂断了对小数对象缺少'.pow()'方法..啊,好吧。 – DSM 2013-03-15 03:49:05