Как работает Math.abs и почему когда он выводит цифры явно больше 0.000001 к примеру 1.9 или 2 то никак не ошибается при сравнении?
System.out.println(Math.abs(1.300400500 - 1.300400700)); // так показывает java 1.9999999989472883E-7
if (Math.abs(1.300400500 - 1.300400700) < 0.000001) { // ведь 1.99 никак не меньше 0.000001
System.out.println("числа равны");
} else {
System.out.println("числа не равны");
}
Вот что показывает java 1.9999999989472883E-7
числа равны
System.out.println(Math.abs(13.300400500 - 13.300400700));
if (Math.abs(13.300400500 - 13.300400700) < 0.000001) {
System.out.println("числа равны");
} else {
System.out.println("числа не равны");
}
2.0000000056086265E-7
числа равны