Java сравнение double
Автор Evgenij Chernjavskij задал вопрос в разделе Java
Java, как правильно сравнивать double? и получил лучший ответ
Ответ от Иван Сигаев[гуру]
Сравнивать числа с плавающей запятой в любом языке программирования правильнее примерно так
abs(a-b)<eps // типа равно
Ответ от Ѐыжая Морда[гуру]
В выражении (x==y.doubleValue()) сравниваются примитивные типы, поэтому использование простого равенства является верным.
Другое дело, что в double накапливаются ошибки округления и в результате вычислений вместо 4 может получиться 3.999998 Тогда простое сравнение будет неуместным. О решении этой проблемы отписался Иван
В выражении (x==y.doubleValue()) сравниваются примитивные типы, поэтому использование простого равенства является верным.
Другое дело, что в double накапливаются ошибки округления и в результате вычислений вместо 4 может получиться 3.999998 Тогда простое сравнение будет неуместным. О решении этой проблемы отписался Иван
Ответ от UltimatuM[гуру]
При сравнении примитивного типа (double) и объекта (Double), будет просто происходить автораспаковка объекта класса Double в double. Поэтому данное сравнение по сути эквивалентно сравнению двух double между собой, что естественно законно.
При сравнении примитивного типа (double) и объекта (Double), будет просто происходить автораспаковка объекта класса Double в double. Поэтому данное сравнение по сути эквивалентно сравнению двух double между собой, что естественно законно.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Java, как правильно сравнивать double?
Как использовать геттеры и сеттеры в Java вне пределов одного класса?
Геттеры и сеттеры не дают никаких преимуществ по сравнению с прямым обращениям к полям. Это просто
подробнее...