Operator '||' cannot be applied to java.lang.Double

269
18 ноября 2017, 09:53

Что не так?

Double first_side = (Double) parameters.get(0);
Double second_side = (Double) parameters.get(1);
Double third_side = (Double) parameters.get(2);
assertTrue((first_side = Math.sqrt(second_side * second_side + third_side * third_side)) ||
           (second_side = Math.sqrt(first_side * first_side + third_side * third_side)) ||
           (third_side = Math.sqrt(first_side * first_side + second_side * second_side))
);
Answer 1

Для сравнения значений надо использовать ==, а не =. Код будет таким:

assertTrue((first_side == Math.sqrt(second_side * second_side + third_side * third_side)) ||
           (second_side == Math.sqrt(first_side * first_side + third_side * third_side)) ||
           (third_side == Math.sqrt(first_side * first_side + second_side * second_side))
);

Однако, не смотря на то, что код будет компилироваться, результат работы может отличаться от ожидаемого. Из за плавающей запятой сравнение двух одинаковых чисел double на равенство может возвращать false. Подробнее в вопросе Вычисления на числах с плавающей точкой не работают

Answer 2

Ваша проблема в том, что нельзя логическую операцию выполнить над числами, логические операции выполняются на boolean(false,true). Функция assertTrue принимает boolean переменную, вы же пытаетесь туда засунуть double.

READ ALSO
<%@ include jsp:include с переменной

<%@ include jsp:include с переменной

Делаю таки образомЕсть одна страница main

213
Получение частоты звука

Получение частоты звука

Вот у меня есть3gpp файл, и я знаю путь к нему в виде String

242
Gradle com.bmuschko.tomcat plugin tomcatRun fails

Gradle com.bmuschko.tomcat plugin tomcatRun fails

После maven стал изучать gradle и столкнулся с проблемой, не получается сделать деплой проекта (gradle 43

342
Как сделать Page Control на android

Как сделать Page Control на android

Как создать PageControl хотя бы подобный тому что на картинке, а вообще надо сделать "ползунком"

226