Ошибка CS0019 в С#. Помогите разобратся

Рейтинг: 1Ответов: 1Опубликовано: 06.06.2023

Проблема следующего характера. Вот код

double x;
double p;

//В button1
double x = Convert.ToDouble(textBox1.Text);
double p = Convert.ToDouble(textBox2.Text);
if (x > Math.Abs(p)) 
l = 2 * Math.Pow(Math.Pow(x, 2), 3) + 3 * Math.Pow(p, 2); 
else
    if (3 < x < Math.Abs(p))
    l = Math.Abs(Math.Pow(x, 2) - p);
    else
        if (x == Math.Abs(p))
        l = Math.Pow(Math.Pow(x, 2) - p, 2);

Эта строчка кода и выдаёт ошибку CS0019

if (3 < x < Math.Abs(p))

Я понимаю что этот оператор невозможно применить к типу bool и double но от задачи отходить нельзя. Вот сама задача https://i.sstatic.net/3Lbhr.png

Ответы

▲ 2Принят

В C# нельзя сравнивать переменную с интервалом, так как в Python:

if (3 < x < Math.Abs(p))

Можно так:

if (x > 3 && x < Math.Abs(p))