web-dev-qa-db-fra.com

Afficher le montant au format $ ###, ###, ###. ## en utilisant f: convertNumber

Je souhaite afficher le montant en $12,050,999.00 format.

J'ai essayé comme suit:

<h:outputText value="#{sampleBean.Amount}">
    <f:convertNumber pattern="###,###" currencySymbol="$" type="currency"/>
</h:outputText>

Cependant, il n'a pas affiché le montant dans le format souhaité. J'ai eu 12,050,999 au lieu.

Le format souhaité est indiqué dans l'image ci-dessous:

enter image description here

Comment puis-je atteindre cet objectif?

11
09Q71AO534

Votre pattern est incorrect pour une devise. Vous devez utiliser pattern="¤#,##0.00".

<f:convertNumber pattern="¤#,##0.00" currencySymbol="$" />

Cependant, il y a plus à dire: dans votre code d'origine, vous avez également spécifié l'attribut type, ce qui est correct, mais cela s'exclut mutuellement avec l'attribut pattern grâce auquel l'attribut pattern obtient la priorité.

Vous devez en fait omettre l'attribut pattern et vous en tenir à l'attribut type.

<f:convertNumber type="currency" currencySymbol="$" />

Notez que cela utilise les paramètres régionaux disponibles par UIViewRoot#getLocale() qui devrait être un paramètre régional basé sur l'anglais/les États-Unis afin d'obtenir le bon format final pour la devise USD. Vous souhaitez le spécifier explicitement dans le <f:view>:

<f:view locale="en_US">

ou dans l'attribut locale du <f:convertNumber>:

<f:convertNumber type="currency" currencySymbol="$" locale="en_US" />

Voir également:

22
BalusC