使用f:convertNumber以格式$ ###,###,###.##显示金额

09Q*_*534 9 jsf number-formatting

我想以$12,050,999.00格式显示金额.

我尝试如下:

<h:outputText value="#{sampleBean.Amount}">
    <f:convertNumber pattern="###,###" currencySymbol="$" type="currency"/>
</h:outputText>
Run Code Online (Sandbox Code Playgroud)

但是,它没有以所需格式显示数量.我得到了12,050,999.

所需格式如下图所示:

在此输入图像描述

我怎样才能做到这一点?

Bal*_*usC 21

pattern的货币错了.你应该使用pattern="¤#,##0.00".

<f:convertNumber pattern="¤#,##0.00" currencySymbol="$" />
Run Code Online (Sandbox Code Playgroud)

但是,还有更多内容:在原始代码中,您还指定了type属性,这是正确的,但这与pattern属性相互排斥,从而pattern属性优先.

你应该省略pattern属性并坚持type属性.

<f:convertNumber type="currency" currencySymbol="$" />
Run Code Online (Sandbox Code Playgroud)

请注意,这会使用可用的UIViewRoot#getLocale()区域设置,以期获得基于英语/美国的区域设置,以获得美元货币的正确最终格式.您想在以下任一位置明确指定它<f:view>:

<f:view locale="en_US">
Run Code Online (Sandbox Code Playgroud)

或者在以下locale属性中<f:convertNumber>:

<f:convertNumber type="currency" currencySymbol="$" locale="en_US" />
Run Code Online (Sandbox Code Playgroud)

也可以看看: