为什么 JSTL 格式数字模式 #00.00 不显示 $0.00 而显示 $1,356.00?

Why the JSTL format Number pattern #00.00 doesn't show $0.00 but shows $1,356.00?

以下是JSP

中使用的一段代码
<fmt:formatNumber value="${A.B}" pattern="$#,###.00" />

Java 服务器端的数据类型是 BigDecimal。如果该值不为零,则显示正确。但只有当它是 0.00 时,它才显示为 $.00

这是为什么? 如何解决?

使用 0 作为第一个数字而不是 # 来强制第一个数字:

<fmt:formatNumber value="${A.B}" pattern="$#,##0.00" />

或者您可以使用 currency 格式化程序:

<fmt:formatNumber value="${A.B}" type="currency" />