R中立方根计算中的一个奇怪问题

R中立方根计算中的一个奇怪问题,r,cubic,R,Cubic,如果我设置x=0,然后计算: ((x+1)/(x-1))^(1/3);我明白了,楠 但如果我这样做,我不会有问题: -1^(1/3) 以下两种方式也会导致错误: ((0+1)/(0-1))^(1/3) ((1)/(-1))^(1/3) 当然,还有 ((x+1)/(x-1))是-1 有人知道R是怎么回事吗?你的困惑可能是认为,对于一台计算机来说,1/3正好是三分之一,但几乎可以肯定不是。将其与之比较:((x+1)/(x-1))^1/3。我认为R取这个值,然后“将其幂为1”,然后除以3。事实上,

如果我设置x=0,然后计算:
((x+1)/(x-1))^(1/3)
;我明白了,楠

但如果我这样做,我不会有问题:

-1^(1/3)
以下两种方式也会导致错误:

((0+1)/(0-1))^(1/3)
((1)/(-1))^(1/3)
当然,还有
((x+1)/(x-1))
是-1


有人知道R是怎么回事吗?

你的困惑可能是认为,对于一台计算机来说,
1/3
正好是三分之一,但几乎可以肯定不是。将其与之比较:
((x+1)/(x-1))^1/3
。我认为R取这个值,然后“将其幂为1”,然后除以3。事实上,这个精确的值在过去被错误地报告给R Core作为a。嗨,Joran,有趣的阅读。最后,回答者提到“每一个用数字浮点表示的非整数都是分母为二的幂的分数,因此负数的幂被正确地表示为NaN。计算n根的函数可能有用,但你不应该期望幂运算符来做。”我的后续问题是,如果不是电力运营商,那么我们应该使用什么?…还有前面的SO问题。