gpt4 book ai didi

java - 将数字格式化为货币并存储为整数

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:33 24 4
gpt4 key购买 nike

我有一个输入字段,用户可以在其中输入以下格式的价格:123.456,78 EUR

<p:inputNumber id="amount" symbol=" EUR" ... />

在支持 bean 中,金额必须作为整数处理:12345678

public String addNewPrice(int amount) {
// processing and sending to backend
}

当我输入:12,34(= 12 欧元和 34 美分)时,它显然被识别为字符串,而不是整数并引发异常:

Method not found: class com.proj.ctrl.addNewPrice(java.lang.String)

<小时/>

当我添加 numberConverter 时,它似乎首先起作用:

<p:inputNumber ...>
<f:convertNumber minFractionDigits = "2" />
</p:inputNumber>

它将数字传递到下一页,我试图在下一页中显示它,如下所示:

<p:outputLabel id="amount" ...>
<f:convertNumber minFractionDigits = "2" />
</p:outputLabel>

但作为输出,我得到:1.234,00 而不是 12,34

<小时/>

tl;dr:我正在尝试输入格式为 123.456,78 的价格,将其存储为整数 12345678,并再次以 123.456,78 格式显示在下一页上。

这是正确的方法吗?

最佳答案

您可以将价格保存在 BigDecimal 中,因此在 xhtml 中您将拥有

<p:inputNumber autocomplete="off" id="amount"
minValue="0" maxValue="999999999999.99" placeholder="0"
decimalSeparator="," thousandSeparator="."
decimalPlaces="8" value="#{backingBean.price}">
</p:inputNumber>

并在您的 backingBean 中接收值,如下所示:

private BigDecimal price; 
// ... Getter & Setter

对于输出,您可以使用 f:convertNumber

<h:outputText style="font-weight: bold;"
value="#{backingBean.price}">
<f:convertNumber type="number" pattern="###.###,##"
locale="de_DE"/>
</h:outputText>

关于java - 将数字格式化为货币并存储为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59502459/

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