1. Обзор
В этом руководстве мы поговорим о различных способах сравнения двойных значений в Java. В частности, это не так просто, как сравнивать другие примитивные типы. На самом деле, это проблематично во многих других языках, не только в Java.
Во-первых, мы объясним, почему использование простого оператора == является неточным и может привести к трудно отслеживаемым ошибкам во время выполнения. Затем мы покажем, как правильно сравнивать двойники в простой Java и в распространенных сторонних библиотеках.
2. Использование оператора ==
Неточность при сравнении с использованием оператора == вызвана тем, как значения типа double хранятся в памяти компьютера. Мы должны помнить, что существует бесконечное количество значений, которые должны поместиться в ограниченном пространстве памяти, обычно 64 бита. В результате мы не можем получить точное представление большинства значений типа double на наших компьютерах . Их нужно округлить, чтобы сохранить .