Как сравнить два двойных значения в Java? ⇐ JAVA
-
Гость
Как сравнить два двойных значения в Java?
Простое сравнение двух значений типа double в Java создает некоторые проблемы. Давайте рассмотрим следующий простой фрагмент кода на Java.
двойное сравнение пакетов; последний общедоступный класс DoubleComparition { public static void main(String[] args) { двойное а = 1,000001; двойной б = 0,000001; System.out.println("\n"+((a-b)==1.0)); } } Похоже, что приведенный выше код возвращает true, оценку выражения ((a-b)==1.0), но это не так. Вместо этого он возвращает false, поскольку оценка этого выражения равна 0.9999999999999999, что на самом деле ожидалось равным 1.0, что не равно 1.0< /code> следовательно, условие оценивается как логическое значение false. Каков наилучший и предлагаемый способ преодолеть такую ситуацию?
Простое сравнение двух значений типа double в Java создает некоторые проблемы. Давайте рассмотрим следующий простой фрагмент кода на Java.
двойное сравнение пакетов; последний общедоступный класс DoubleComparition { public static void main(String[] args) { двойное а = 1,000001; двойной б = 0,000001; System.out.println("\n"+((a-b)==1.0)); } } Похоже, что приведенный выше код возвращает true, оценку выражения ((a-b)==1.0), но это не так. Вместо этого он возвращает false, поскольку оценка этого выражения равна 0.9999999999999999, что на самом деле ожидалось равным 1.0, что не равно 1.0< /code> следовательно, условие оценивается как логическое значение false. Каков наилучший и предлагаемый способ преодолеть такую ситуацию?
Мобильная версия