C #: вычисление кубического корня для отрицательного числа - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь вычислить реальный ответ кубического корня отрицательного числа, используя C #. Math.Pow(-2, (1.0/3.0)) приводит к NaN. Как рассчитать реальный ответ в C #?

Некоторые сообщения в stackoverflow уже обращались к тому, как вычислить кубический или n-й корень числа. Но никто из них не может рассчитать это по отрицательному числу, что приводит к комплексным числам.

Я пытаюсь перенести лист Excel на C #. Excels = POWER (-2; 1/3) возвращает действительное число.

Согласно этому сообщению, кубический корень отрицательного основания содержит ответ с действительным числом и два ответа с комплексным числом.

https://superuser.com/questions/1432963/excel-power-function-fractional-power-issue

Меня не интересует математически наиболее правильное решение, но перенесенный код C # ведет себя точно так же, как функция Excel = POWER (), которая возвращает ответ с действительным числом.

Br, Johan

1 Ответ

1 голос
/ 05 мая 2019

Самый простой способ - написать собственную функцию, которая выполняет что-то вроде этого:

private static double CubeRoot(double x) {
    if (x < 0)
        return -Math.Pow(-x, 1d / 3d);
    else
        return Math.Pow(x, 1d / 3d);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...