Genauigkeit im Float-Wert mit Java verloren
Dazu unten den Testcode und dessen Ausgabe. Wenn ich vom Zahlenwert einen Gleitkommawert erhalte, geht die Genauigkeit verloren. Kann mir jemand sagen, warum dieses Verhalten und wie damit umzugehen ist?
public static void main(String[] args)
{
try
{
java.lang.Number numberVal = 676543.21;
float floatVal = numberVal.floatValue();
System.out.println("Number value : " + numberVal);
System.out.println("float value : " + floatVal);
System.out.println("Float.MAX_VALUE : " + Float.MAX_VALUE);
System.out.println("Is floatVal > Float.MAX_VALUE ? " + ( floatVal > Float.MAX_VALUE));
}catch(Exception e)
{
e.printStackTrace();
}
}
Ausgabe:
Number value : 676543.21
float value : 676543.2
Float.MAX_VALUE : 3.4028235E38
Is floatVal > Float.MAX_VALUE ? false
auch warum ist der float-Wert kleiner als Float.MAX_VALUE?