Java double einlesen?
Wenn ich in Java eine Zahl 0,01 mit der Kommandozeile einlese und diese auf ein double speicher, wird nur ein tatsächlicher Wert von 0,00999.. gespeichert. Lässt sich das verhindern?
4 Antworten
Für die Darstellung von Floating Point gibt es glaube einen etablierten Standard; Basis und Matisse. Der Rest ist geschickter/gekonnter Umgang damit. 0,00999 ist ja letztlich besser als 0,01.
ich glaube du suchst nach der BigDecimal klasse
doubles sind zahlen mit denen der computer klarkommt, bigdecimals sind (meines verständnisses nach) schon eher zahlen wie wir menschen es kennen
0,01 ist im Dualsystem ein unendlicher periodischer Dezimalbruch (eigentlich "Dualbruch").
Deshalb lässt sich das nicht nicht verhindern, da muss man bei der Ausgabe runden.
Klar, in Java gibt es ganz sicher eine Rundungsfunktion. Du rundest auf zwei Stellen hinter dem Komma.