【问题标题】:Remove trailing zeros on currency删除货币尾随零
【发布时间】:2019-02-03 14:32:59
【问题描述】:

在 Thymeleaf 中,如果存在零,是否有任何方法可以打印没有尾随零的货币?

例如:

$49.20 --> $49.20

$49.00 --> $49

我的想象是这样的:#numbers.formatCurrency(abc.value, removeTrailingZeros)

【问题讨论】:

  • 你在使用 Spring 吗?
  • 是的,Spring MVC

标签: thymeleaf


【解决方案1】:

这是一种方法:

$<span th:text="${#numbers.formatDecimal(value, 0, T(Math).round(value) == value ? 0 : 2)}" />

(我可能更喜欢为此添加一个 getter,或者某种实用方法。)

--

如果你仍然只想使用formatCurrency,这个解决方案怎么样:

${#strings.replace(#numbers.formatCurrency(abc.value), '.00', '')}

【讨论】:

  • 不错,但您会丢失货币符号
  • @bphilipnyc 第二个选项?
  • 第二个选项可以做到!
  • 这种逻辑将在全球市场上打破。并非每个国家/地区都使用小数点分隔小数位数。例如:美国金额$49.50,在法国显示为€49,50
【解决方案2】:

当您想在某些情况下保留零时,使用这种复杂的格式,在其他情况下删除它们并显示 $$ 而不是 $ - 也许制作自定义格式化程序 bean 并调用类似的方法是有意义的

${@myFormatterBean.customFormat(abc.value)}

您将能够控制所有格式。

【讨论】:

  • 我不想乱用货币符号
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 2011-05-30
  • 2021-09-13
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多