Rechenfehler ?

Status
Nicht offen für weitere Antworten.

ne0n2005

Mitglied
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
 

ne0n2005

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

Guest

Gast
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.
 
Status
Nicht offen für weitere Antworten.

Oben