Frage

Wenn durch 1000 dividiert ich irgendwann über einen Fehler ausführen, die nicht die Teilung macht „richtig“. Wenn zum Beispiel 90,55 von 1000 Teilung statt 0,09055 des Erhaltens ich ,090549999999 erhalten.

<c:out value="${bean.paPrice / 1000}" />

Warum ist das passiert? Ist das ein Ergebnis von Punktmathematik Floating? Eine Google-Suche schien darauf hinzudeuten, dass dies ein Täter sein kann, aber ich habe keine konkrete Antwort gefunden.

Um dies zu beheben ich die Antwort auf 5 Stellen abzurunden, aber es scheint, als ob dies nur ein Patch auf ein tiefes liegendes Problem ist.

<fmt:formatNumber type="number" maxFractionDigits="5" value="${bean.paPrice / 1000}" />
War es hilfreich?

Lösung

Es ist kein Problem, es ist nur eine natürliche Folge der binären Darstellung von Gleitkomma. Runde Ihre Werte und keine Sorge über sie.

Andere Tipps

Ja, das ist eine gemeinsame Gleitpunktformat Thema.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top