Максимальное значение для Float в Java?
Следующий question указывает, что минимальное значение Double равно -Double.MAX_VALUE
. Это также верно для Float (т.е. -Float.MAX_VALUE
)?
Ответы
Ответ 1
Да, -Float.MAX_VALUE
- отрицательное число с наибольшей величиной. float
представлены так же, как double
s, только с половиной места хранения (и сопутствующей потерей точности). Поскольку знаки в IEEE 754 представлены одним битом, перебронирование этого бита не изменяет общий величина, достигаемая оставшимися битами.
Ответ 2
Да - это тот же бит-шаблон, что и Float.MAX_VALUE
, за исключением того, что бит знака перевернулся... и это еще один способ получить значение:
public class Test {
public static void main(String[] args) {
// Float.MAX_VALUE is intBitsToFloat(0x7f7fffff)
// so we set the most significant bit - the sign bit
float f = Float.intBitsToFloat((int) 0xff7fffff);
System.out.println(f == -Float.MAX_VALUE); // true
}
}
Ответ 3
Чтобы ответить на вопрос заголовка: 2,139,095,039
Это происходит из окна калькулятора, вид программы, где шестнадцатеричное значение: 7F7F FFFF
Значение шестнадцатеричного значения происходит из местоположения, похожего на то, что указал г-н Погребняк: http://docs.oracle.com/javase/8/docs/api/java/lang/Float.html#MAX_VALUE
Ответ 4
Да, это также верно для Float.
Для получения дополнительной информации ознакомьтесь с руководством по эксплуатации http://download.oracle.com/javase/7/docs/api/java/lang/Float.html
Ответ 5
Да, это так и по той же причине, что и в ответе на вопрос, который вы связали, Floats and Doubles используют представление IEEE754, которое является "симметричным" из-за того, как они хранятся.
Ответ 6
Float.MIN_VALUE
- минимальное положительное значение, которое может иметь float.