6 Stimmen

Arithmetik in Rubin

Warum dieser Code 7.30 - 7.20 in Rubin zurückkehrt 0.0999999999999996 , nicht 0.10 ?

Aber wenn ich schreibe 7.30 - 7.16 zum Beispiel, alles wird gut, ich bekomme 0.14 .

Was ist das Problem, und wie kann ich es lösen?

0voto

James Black Punkte 41034

Da Sie Fließkommamathematik betreiben, ist die zurückgegebene Zahl diejenige, die Ihr Computer für die Genauigkeit verwendet.

Wenn Sie eine genauere Antwort mit einer bestimmten Genauigkeit wünschen, multiplizieren Sie den Float-Wert einfach mit diesem Wert (z. B. mit 100), wandeln Sie ihn in einen Int-Wert um, führen Sie die Berechnungen durch und dividieren Sie dann.

Es gibt noch andere Lösungen, aber ich halte dies für die einfachste, da mir das Runden immer ein wenig unsicher erscheint.

Diese Frage wurde hier schon einmal gestellt. Vielleicht möchten Sie einige der früheren Antworten nachlesen, z. B. diese: Umgang mit Genauigkeitsproblemen bei Gleitkommazahlen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X