import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double firstDouble = scanner.nextDouble();
double secondDouble = scanner.nextDouble();
if (Math.abs(secondDouble - firstDouble) < 0.000001) {
System.out.println("числа равны");
} else {
System.out.println("числа не равны");
}
System.out.println(firstDouble - secondDouble);
}
}
Имеем такой код. Просто программа проверки равенства двух вещественных чисел через сравнение их разности с 0.000001. И да, я знаю про класс java.math.BigDecimal(), но в данном случае я использую казуальный метод сравнения примитивов, но попробуйте прогнать 0.000007 и 0.000006. Казалось бы, условие не выполняется, и вывод должен быть - "не равны". Но нет. А главное, я для проверки в самом конце прописал вывод самой разности этих чисел. Там так и вовсе дичь какая-то. Уважаемые знатоки, что и почему происходит?