# Rechenfehler ?



## ne0n2005 (4. Aug 2008)

Hallo, ich würde mal gerne wissen wieso es hier zu einem "Rechenfehler" kommt   


        double d1 = 100;
        double d2 = 85.71;

        double d3 = d1-d2;
        System.out.println(d3);

        //Ausgabe 14.290000000000006


----------



## SlaterB (4. Aug 2008)

wir haben beide Glück,
da hab ich aber einen tollen Link dazu gefunden, Achtung PDF:
http://www.sigs.de/publications/js/2005/06/schulz_JS_06_05.pdf


----------



## ne0n2005 (4. Aug 2008)

Danke sehr, es war auf jedenfall hilfreich mal einen Einblick darüber erhalten zu haben, auch wenn ich nicht wirklich alles verstanden habe.


----------



## Guest (4. Aug 2008)

Das Hauptproblem ist, das man mit einer endlichen Anzahl von Bits nicht eine unendliche Genauigkeit hinbekommt. Bestimmte Zahlen können einfach nicht als Kombination von 32 oder 64 Bit dargestellt werden.

Deshalb wenn es auf Genauigkeit ankommt immer BigDecimal verwenden.


----------

