Максимальное значение для 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

Ответ 5

Да, это так и по той же причине, что и в ответе на вопрос, который вы связали, Floats and Doubles используют представление IEEE754, которое является "симметричным" из-за того, как они хранятся.

Ответ 6

Float.MIN_VALUE - минимальное положительное значение, которое может иметь float.