質問

1000で除算するとき、「正しく」除算しないバグに遭遇することがあります。たとえば、90.55を.09055ではなく1000で割ると、.090549999999になります。

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

これはなぜ起こっているのですか?これは浮動小数点演算の結果ですか?グーグル検索は、これが原因である可能性を示唆しているように見えましたが、具体的な答えは見つかりませんでした。

これを修正するために、回答を5桁に丸めることができますが、これは単なるより深い問題へのパッチのようです。

<fmt:formatNumber type="number" maxFractionDigits="5" value="${bean.paPrice / 1000}" />
役に立ちましたか?

解決

これは問題ではなく、浮動小数点のバイナリ表現の自然な結果です。値を丸めて、それについて心配しないでください。

他のヒント

コンピューターはなぜ数学を嫌うのですか?

http://www.codinghorror.com/blog/archives/001266.html

はい、これは一般的な浮動小数点形式の問題です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top