Получаю NaN при решении формулы
При решении одной формулы с использованием чисел с запятой, я получаю в ответе NaN
Но при решении той же формулы с целыми числами, ответ получается адекватный
Тут все адекватно
for (double x = 1; x <= 10; x ++)
{
double value = 2 * ((x - 1) / (x + 1)) +
(Math.Pow((x - 1), x) / (3 * Math.Pow((x + 1), 3)));
Console.WriteLine("Для x = " + Math.Round(x, 2) + " Ответ: " + Math.Round(value, 2) + "\n");
}
Проблема в этом коде:
for (double x = 0.1; x <= 1; x += 0.1)
{
double value = 2 * ((x - 1) / (x + 1)) +
(Math.Pow((x - 1), x) / (3 * Math.Pow((x + 1), 3)));
Console.WriteLine("Для x = " + Math.Round(x, 2) + " Ответ: " + Math.Round(value, 2) + "\n");
}
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
В случае с дробным x, в результате (x - 1) в основании степени оказывается отрицательное число. При этом показатель степени является дробным.
Для этого случая есть описание в справке
x < 0 but not NegativeInfinity; y is not an integer, NegativeInfinity, or PositiveInfinity. result = NaN