tipos - ¿Valor máximo para Float en Java?
tipos de variables en java ejemplos (5)
La siguiente question indica que el valor mínimo de un Double es -Double.MAX_VALUE
. ¿Esto también es cierto para Float (es decir, -Float.MAX_VALUE
)?
EDITAR: Mi respuesta original parece ser incorrecto. Gracias @aioobe por señalar esto.
En su lugar, utiliza la magia del código java para responder la pregunta del título:
System.out.printf( "Float.MAX_VALUE: %,f/n", Float.MAX_VALUE );
Float.MAX_VALUE: 340,282,346,638,528,860,000,000,000,000,000,000,000.000000
System.out.printf("in scientific notation: %.18g/n", Float.MAX_VALUE );
en notación científica: 3.40282346638528860e + 38
System.out.printf(
"in hexadecimal floating-point number with a significand and "
+ "an exponent: %a", Float.MAX_VALUE );
en número de coma flotante hexadecimal con un significando y un exponente: 0x1.fffffep127
Sí, -Float.MAX_VALUE
es el número negativo con la mayor magnitud. float
se representan de la misma manera que el double
s, solo con la mitad del espacio de almacenamiento (y la pérdida de precisión que lo acompaña). Dado que los signos en IEEE 754 están representados por un solo bit, el cambio de ese bit no cambia la magnitud general que puede alcanzar los bits restantes.
Sí, es el mismo patrón de bits que Float.MAX_VALUE
excepto con el bit de signo invertido ... y esa es otra forma de obtener el valor:
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
}
}
Sí, lo es, y por la misma razón que se indica en la respuesta a la pregunta que vinculó, los Flotantes y Dobles utilizan la representación IEEE754 que es "simétrica" debido a la forma en que se almacenan.
Sí, también es cierto para Float.
Para obtener más información, consulte el manual aquí http://download.oracle.com/javase/7/docs/api/java/lang/Float.html