Thomas: Berechnung negativerer Werte

Hallo,

warum erhält man die folgenden Ergebnisse in Java?

float a = –16777217F;
float b =  16777216F;
float c = 1F;

System.out.println( a + b + c );    // 1.0
System.out.println( a + (b + c) );  // 0.0

Quelle: http://www.galileocomputing.de/openbook/javainsel7/javainsel_02_004.htm#mj88cb6a9886c18b7a75cec901de5543ec

  1. Yerf!

    warum erhält man die folgenden Ergebnisse in Java?

    float a = –16777217F;
    float b =  16777216F;
    float c = 1F;

    Wegen Rundungsfehlern. Da gibts auch was in der FAQ dazu (nicht wundern wegen JS, das gilt für jede Programmiersprache mit Fließkommazahlen).

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->