我想计算一个简单的百分比,但是除非值是100%,否则下面的代码不起作用。对于所有其他显示为.00%。我要去哪里错了?
.unspecified
答案 0 :(得分:0)
似乎您在summary.complete
和summary.total
中使用整数。整数运算将得出整数答案(因此,您的百分比为零或100)。
一种快速的解决方法是,通过向其中添加0.0
来强制至少一个值成为浮点数:
<div th:text="${#numbers.formatDecimal(((summary.complete + 0.0) / summary.total) * 100, 1, 2)} + '%'"></div>
答案 1 :(得分:0)
为清楚起见,可以使用Thymeleaf formatPercent
方法,不需要百分号或100的乘法。1.0的乘法会将整数转换为浮点数。
${#numbers.formatPercent((summary.complete * 1.0/summary.total), 1, 2)}
如果您的页面允许这样做,您也可以在服务器端进行summary.complete * 1.0/summary.total
,在那里进行单元测试,然后使用model.addAttribute(...)
将结果添加到模型中。