JSP/JSTL 부서가 1000으로 때때로 나머지를 제공하는 이유는 무엇입니까?
-
05-07-2019 - |
문제
1000으로 나눌 때 나는 언젠가 "올바르게"부서를 수행하지 않는 버그를 가로 질러 실행됩니다. 예를 들어, .09055를 얻는 대신 90.55를 1000으로 나눌 때 .09054999999를 얻습니다.
<c:out value="${bean.paPrice / 1000}" />
왜 이런 일이 일어나고 있습니까? 이것은 부동 소수점 수학의 결과입니까? Google 검색에 따르면 이것이 범인 일 수 있지만 구체적인 대답은 찾지 못했습니다.
이것을 고치기 위해 나는 답을 5 자리에 반올림 할 수 있지만 이것은 더 깊은 문제에 대한 패치 일뿐입니다.
<fmt:formatNumber type="number" maxFractionDigits="5" value="${bean.paPrice / 1000}" />
해결책
그것은 문제가되지 않습니다. 그것은 부동 소수점의 이진 표현의 자연스러운 결과 일뿐입니다. 당신의 가치를 반올림하고 그것에 대해 걱정하지 마십시오.
다른 팁
컴퓨터가 왜 수학에 빠지는가?
예, 이것은 일반적입니다 부동 소수점 형식 문제.
제휴하지 않습니다 StackOverflow