Number.format 用地图计算

Number.format calculation with map

我正在尝试显示负 20% 的数字。该数字在地图中,我无法从那里获取值。

这不起作用:

 <div class="row p-3 ml-1" th:each="r : ${roomTypes}">
  <div th:with="price=*{r.value}"  th:text="${#numbers.formatDecimal({price} * 0.8)}">x</div>

这也不起作用

  <div th:text="${#numbers.formatDecimal({r.value} * 0.8)}">x</div>

有没有办法在 Thymeleaf 中获取此值? 或者我可以通过其他方式进行计算?

#numbers utility object 没有方法 formatDecimal(number)。您是说 formatDecimal(number, minIntegerDigits, decimalDigits) 吗?

在表达式 th:with="price=*{r.value}" 中 -- 当您使用 *{r.value} 时,星号表示您是 working on a selected object (defined with th:object),但我没有看到 th:object。在这种情况下,您应该只使用常规 ${...} 表达式。

最后,您的 th:text 表达式 th:text="${#numbers.formatDecimal({price} * 0.8)}" 语法无效。一般来说,你不应该嵌套大括号 {}.

修正后的 Thymeleaf 应类似于:

<div class="row p-3 ml-1" th:each="r : ${roomTypes}">
  <div th:with="price=${r.value}"  th:text="${#numbers.formatDecimal(price * 0.8, 1, 2)}">x</div>
</div>