gpt4 book ai didi

java - FMMT :formatNumber throws exception if number has length >= 20 digit?

转载 作者:行者123 更新时间:2023-12-02 08:20:54 24 4
gpt4 key购买 nike

我有一个长度 > 20 位的货币字段

例如:99999999999999999999

当我使用时:

<fmt:formatNumber
value="${crudShipmentForm.invoiceVat}"
pattern="###,###,###,###,##0.000" />

我收到了NumberFormatException?如何使用 fmt:formatNumber 将此字段格式化为货币?

最佳答案

您已经超出了 long 的最大值,即 9223372036854775807

这表明您使用 String 来保存数字,而不是 BigDecimalBigInteger。它不仅在技术上是错误的类型,而且 EL 还会将其强制为 long。相应地修复它。

private BigDecimal invoiceVat; // And fix getter/setter as well.

或者,如果由于某些奇怪的原因您确实无法更改类型,请在 getter 中进行更改

public BigDecimal getInvoiceVat() {
return new BigDecimal(invoiceVat);
}

关于java - FMMT :formatNumber throws exception if number has length >= 20 digit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com