计算负数的立方根

问题描述 投票:1回答:2

我正在尝试使用C#计算负数的立方根的真实答案。 Math.Pow(-2, (1.0/3.0))产生NaN。如何计算C#中的真实答案?

StackOverflow上的某些帖子已经介绍了如何计算数字的立方或n th根。但是他们都没有一个如何在负数上计算这个,这导致了复数。

我正在尝试将Excel工作表移植到C#。在Excel中,=POWER(-2;1/3)返回一个实数。

根据this post,负基的立方根具有实数答案和两个复数答案。

我对数学上最正确的解决方案不感兴趣,但是移植的C#代码的行为与Excel的=POWER()函数完全相同,后者返回实数答案。

c# math
2个回答
1
投票

最简单的方法是编写自己的函数来执行以下操作:

private static double CubeRoot(double x) {
    if (x < 0)
        return -Math.Pow(-x, 1d / 3d);
    else
        return Math.Pow(x, 1d / 3d);
}

1
投票

Math.Cbrt()在.NET Core / Standard 2.1中引入,用于计算多维数据集根。现在您可以同时获得数学上正确的更精确的结果

只需拨打Math.Cbrt()

© www.soinside.com 2019 - 2024. All rights reserved.