Member 13472409 Ответов: 2

У меня проблема. Как я могу это исправить? Спасибо


если ((математика.Военнопленных(stranac, 2)) = (математика.Военнопленных(stranaa, 2) + (математика.Военнопленных(stranab, 2))))

и у меня есть ошибка
Левая часть присваивания должна быть переменной, свойством или индексатором

Что я уже пробовал:

Я не могу это исправить. Я не понимаю этой ошибки.

2 Ответов

Рейтинг:
2

phil.o

Это происходит потому, что вы используете оператор присваивания (=) вместо оператора сравнения равенства (==).
Более того, для степени два более эффективно использовать простое умножение вместо Math.Pow метод.
Предлагаемое решение:

if ((stranac * stranac) == (stranaa * stranaa + stranab * stranab))

Надеюсь, это поможет. Любезно.


CPallini

5.

Рейтинг:
0

Jochen Arndt

Это означает, что левая часть присваивания должна быть переменной, как в

double c = Math.Pow(stranaa, 2) + Math.Pow(stranab, 2);

Вероятно, вы хотели провести сравнение (==):
if ((Math.Pow(stranac, 2)) == (Math.Pow(stranaa, 2) + (Math.Pow(stranab, 2))))
Но обратите внимание, что такие сравнения для равенства не должны использоваться со значениями с плавающей запятой из-за неточности значений с плавающей запятой и операций. Видеть Руководство С Плавающей Запятой-Сравнение[^].


CPallini

5.