如果您尝试以下位,您将获得-0
<c:set var="demo" value="-0.04" />
<fmt:formatNumber maxFractionDigits="1" value="${demo}" var="demo" />
Run Code Online (Sandbox Code Playgroud)
但是,如果你测试的是否小于0则说明是真的
<c:if test="${demo < 0.00}">...</c:if>
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个?它似乎没有意义,0等于-0,我在代数中证明了它...在这篇文章中他们指向IEEE参考,但仍然,我无法解决问题
编辑:感谢您的评论,代码示例中存在错误.我将舍入值分配给演示变量.并且输出不是0,但是-0,我试过了
这里的可能性很大,但是是因为它将原始的 -0.04 解析为字符串吗?
也许试试这个,我认为这将迫使它评估为数字:
<c:set var="demo" value="${-0.04}" />
Run Code Online (Sandbox Code Playgroud)