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?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage