Java 为什么JSP/JSTL除以1000有时会得到余数?
当除以1000时,我有时会遇到一个不能“正确”进行除法的错误。例如,当90.55除以1000而不是得到.09055时,我得到了.0905499999Java 为什么JSP/JSTL除以1000有时会得到余数?,java,jsp,floating-point,jstl,Java,Jsp,Floating Point,Jstl,当除以1000时,我有时会遇到一个不能“正确”进行除法的错误。例如,当90.55除以1000而不是得到.09055时,我得到了.0905499999 <c:out value="${bean.paPrice / 1000}" /> 为什么会这样?这是浮点运算的结果吗?谷歌搜索似乎表明这可能是罪魁祸首,但我没有找到具体答案 为了解决这个问题,我可以将答案四舍五入到5位数,但这似乎只是一个更深层次问题的补丁 <fmt:formatNumber type="number" ma
<c:out value="${bean.paPrice / 1000}" />
为什么会这样?这是浮点运算的结果吗?谷歌搜索似乎表明这可能是罪魁祸首,但我没有找到具体答案
为了解决这个问题,我可以将答案四舍五入到5位数,但这似乎只是一个更深层次问题的补丁
<fmt:formatNumber type="number" maxFractionDigits="5" value="${bean.paPrice / 1000}" />
是的,这是一个常见的问题。为什么计算机在数学方面很差劲
这不是问题,它只是浮点二进制表示的自然结果。舍入您的值,不用担心。Duplicate:另请参见