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?
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?
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 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.