by Anonymous » 17 Aug 2025, 18:26
Nach dem Standard wird der Überlauf in Java unter Verwendung eines speziellen Wertes bezeichnet, der als Infinity bezeichnet wird, aber hier ist die Summe 3,4028235E38. Warum ist das der Fall?
Code: Select all
public class FloatingPointTest {
public static void main(String[] args) {
float a = Float.MAX_VALUE;
float b = 1_000_000_000f; // Note the 'f' to ensure it's a float literal
float sum = a + b;
System.out.println("Float.MAX_VALUE: " + a);
System.out.println("Large number: " + b);
System.out.println("Sum: " + sum);
System.out.println("Is sum equal to Float.POSITIVE_INFINITY? " + (sum == Float.POSITIVE_INFINITY));
}
}
Nach dem Standard wird der Überlauf in Java unter Verwendung eines speziellen Wertes bezeichnet, der als Infinity bezeichnet wird, aber hier ist die Summe 3,4028235E38. Warum ist das der Fall?[code]public class FloatingPointTest {
public static void main(String[] args) {
float a = Float.MAX_VALUE;
float b = 1_000_000_000f; // Note the 'f' to ensure it's a float literal
float sum = a + b;
System.out.println("Float.MAX_VALUE: " + a);
System.out.println("Large number: " + b);
System.out.println("Sum: " + sum);
System.out.println("Is sum equal to Float.POSITIVE_INFINITY? " + (sum == Float.POSITIVE_INFINITY));
}
}
[/code]