Как решить проблему с выводом на консоль знака бесконечности?C#

Пример, который нужно осуществить в программе

Console.WriteLine("Введите X для вычисления");
Console.Write("X: ");
double valueX = Convert.ToDouble(Console.ReadLine());
double sum = 0;
double f = 20;
for (double i = 4; i <= f; i++)
{
    // Вычисление сигмы i и valueX по модулю 
    double sigma = Math.Abs(i * valueX) % i;
    if (sigma != 0)
    {
        sum += Math.Pow(Math.Log(sigma), 2) / (i + valueX); 
    }
    Console.WriteLine($"Сумма квадратов натуральных логарифмов {sum}");
}

Выводит в консоль знак бесконечности. Что-то ничего не приходит на ум. Возможно кто-то понял в чем ошибка.


Ответы (1 шт):

Автор решения: rotabor

На ноль нужно проверять знаменатель:

Console.Write("Введите X для вычисления: ");
double valueX = Convert.ToDouble(Console.ReadLine());
if (valueX == 0) { Console.Write("0 не подходит для X"); return; }
double absx = Math.Abs(valueX);
double sum = 0;
for (int i = 4; i <= 20; i++) {
    double sigma = i + valueX;
    if (sigma != 0)
        sum += Math.Pow(Math.Log(i * absx), 2) / sigma; 
}
Console.WriteLine($"Сумма квадратов натуральных логарифмов {sum}");
→ Ссылка