У меня есть список двойных значений, диапазон которых я не знаю, и я хочу найти максимальное значение. Однако функция Math.max дает любопытный результат для этого примера кода:
double a = -100.0; double maxA = Double.MIN_VALUE; maxA = Math.max(maxA, a); System.out.println(maxA);
И вывод:
4.9E-324
По какой-то причине Double.MIN_VALUE считается максимальным по сравнению с -100.0.
Почему?
MIN_VALUE :
Константа, содержащая наименьшее положительное ненулевое значение типа double, 2 ^ (- 1074).
Не самое отрицательное возможное значение.
MIN_VALUE Константа, содержащая наименьшее положительное ненулевое значение типа double.
Обратите внимание на «положительное» значение.
Вы сравниваете его с отрицательным значением 1> -1.
Довольно очевидно, что -100 меньше, чем 4.9E-324
-100 , -99 ..... -1 , 0 , 4.9E-324 , 1 , 2 , 3......