为什么这个JSTL块导致0.9999999999999999,修复是什么?
<c:set var="one" value="0.1"/>
<c:set var="two" value="0.7"/>
<c:set var="three" value="0.1"/>
<c:set var="four" value="0.1"/>
<c:out value="${one+two+three+four}"/>
答案 0 :(得分:0)
JB Nizet的评论是正确的,但这是如何处理它。
处理时应考虑使用fmt:formatNumber函数 浮点数字。这是一个网址:http://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm
这是一个例子:
<c:set var="one" value="0.1"/>
<c:set var="two" value="0.7"/>
<c:set var="three" value="0.1"/>
<c:set var="four" value="0.1"/>
<fmt:formatNumber value="${one+two+three+four}" maxFractionDigits="2" />
确保在JSP代码的顶部包含此行:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>