question indique que la valeur minimale d'un Double est -Double.MAX_VALUE
. Est-ce également vrai pour Float (c'est-à-dire -Float.MAX_VALUE
)?
Oui, -Float.MAX_VALUE
est le nombre négatif de plus grande ampleur. float
s sont représentés de la même manière que double
s, juste avec la moitié de l'espace de stockage (et la perte de précision qui l'accompagne.) Puisque les signes dans IEEE 754 sont représentés par un seul bit, inverser ce bit ne fait pas 't changer la magnitude globale atteignable par les bits restants.
Oui - c'est le même motif de bits que Float.MAX_VALUE
sauf avec le bit de signe inversé ... et c'est une autre façon d'obtenir la valeur:
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
}
}
EDIT: Ma réponse d'origine semble être très incorrecte. Merci @aioobe de l'avoir signalé.
Au lieu de cela, utilisez la magie de Java code pour répondre à la question du titre:
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,0000000
System.out.printf("in scientific notation: %.18g\n", Float.MAX_VALUE );
en notation scientifique: 3.40282346638528860e + 38
System.out.printf(
"in hexadecimal floating-point number with a significand and "
+ "an exponent: %a", Float.MAX_VALUE );
en nombre à virgule flottante hexadécimale avec une signification et un exposant: 0x1.fffffep127
Oui, c'est également vrai pour Float.
Pour plus d'informations, consultez le manuel ici http://download.Oracle.com/javase/7/docs/api/Java/lang/Float.html
Oui, et pour exactement la même raison que celle indiquée dans la réponse à la question que vous avez liée, les flotteurs et les doubles utilisent une représentation IEEE754 qui est "symétrique" en raison de la façon dont ils sont stockés.