Problem mit round() bzw decimal()
Verfasst: Freitag 20. März 2009, 15:04
Hallo!
Ich suche dringend nach einer Lösung für das leidige Gleitkommazahlen-Ungenauigkeitsproblem. Nun habe ich gelesen, dass es sich mit round() bzw. auch mit decimal() lösen lässt. Mit beiden habe ich jedoch Probleme.
Zum Beispiel liefert mir round(4.123456,4) 4.1234999999999999 und nicht wie erhofft 4.1235. Dadurch kommt es ja wieder zu kleinen, aber evtl . entscheidenden Ungenauigkeiten.
Bei decimal() lassen sich ja nur "reine" Zahlen umwandeln. Wäre im oben genanten Beispiel auch super. Jedoch muss ich lange Formeln verwenden, deren Ergebnisse ich gerne sehr genau hätte. Und das wiederum wär dann ja nicht möglich, oder?!
Weiß nich, ob meine Fehler im Programm überhaupt an diesen kleinen Ungenauigkeiten liegen können, aber so oder so wär es schön zu wissen
Vielen Dank schonmal für eure Hilfe!
Ich suche dringend nach einer Lösung für das leidige Gleitkommazahlen-Ungenauigkeitsproblem. Nun habe ich gelesen, dass es sich mit round() bzw. auch mit decimal() lösen lässt. Mit beiden habe ich jedoch Probleme.
Zum Beispiel liefert mir round(4.123456,4) 4.1234999999999999 und nicht wie erhofft 4.1235. Dadurch kommt es ja wieder zu kleinen, aber evtl . entscheidenden Ungenauigkeiten.
Bei decimal() lassen sich ja nur "reine" Zahlen umwandeln. Wäre im oben genanten Beispiel auch super. Jedoch muss ich lange Formeln verwenden, deren Ergebnisse ich gerne sehr genau hätte. Und das wiederum wär dann ja nicht möglich, oder?!
Weiß nich, ob meine Fehler im Programm überhaupt an diesen kleinen Ungenauigkeiten liegen können, aber so oder so wär es schön zu wissen

Vielen Dank schonmal für eure Hilfe!