当除以 1000 时,我有时会遇到一个无法“正确”进行除法的错误。例如,当将 90.55 除以 1000 时,我得到的不是 0.09055,而是 0.090549999999。
<c:out value="${bean.paPrice / 1000}" />
为什么会发生这种情况?这是 float 学的结果吗?谷歌搜索似乎表明这可能是罪魁祸首,但我没有找到具体的答案。
为了解决这个问题,我可以将答案四舍五入到 5 位数字,但这似乎只是解决更深层次问题的补丁。
<fmt:formatNumber type="number" maxFractionDigits="5" value="${bean.paPrice / 1000}" />
最佳答案
这不是问题,这只是 float 二进制表示的自然结果。圆整你的值(value)观,不用担心。
关于java - 为什么 JSP/JSTL 除以 1000 有时会得到余数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002430/