Affichage d'un nombre au format décimal à 2 points dans jsf
Je suis en utilisant JSF 2 et RichFaces 3. Ici, dans l'image ci-dessous, les numéros sont affichés comme ce qu'ils sont dans la base de données.
Mais je veux les afficher comme 6749395.20
si la fraction est là et 5095138.00
si aucune fraction de la partie est là.
Comme de maintenant, j'ai essayé quelque chose comme ça.
<rich:column>
<f:facet name="header">
<h:outputText value="Total Amount"/>
</f:facet>
<h:outputText value="#{rr[2]}">
<f:convertNumber type="number" groupingUsed="true" minFractionDigits="2" pattern="#0.00"/>
</h:outputText>
</rich:column>
En fait je suis en train de montrer tous ensemble, mais j'ai essayé avec l'ensemble de toutes les combinaisons possibles avec type
groupingUsed
minFractionDigits
et pattern
.
Pourquoi n'est-il pas de travail? Comment est-il la cause et comment puis-je le résoudre?
source d'informationauteur Addicted
Vous devez vous connecter pour publier un commentaire.
Qui peut se produire si la valeur n'est pas un
à tous, par exemple un
String
. Vous êtes alors essentiellement à utiliser le mauvais type de données qu'il représente. Pour représenter les monnaies en Java, vous devriez être en utilisantBigDecimal
. Aussi, assurez-vous que le type dans la table de base de données est droit, c'est à dire qu'il ne devrait pas être un varchar, mais un nombre décimal.Une fois que vous avez fixé le type de données, puis la
<f:convertNumber>
fonctionnera comme vous lui avez dit de faire. Notez que lepattern
attribut remplace legroupingUsed
etminFractionDigits
. Vous devez utiliser lepattern
ou les autres. Aussi,type="number"
est déjà la valeur par défaut, de sorte qu'il peut être supprimé.Donc, soit utiliser
ou
Remarque qu'ils génèrent différents formats. Vous voulez sans doute définir le groupement
false
.Vous pouvez également utiliser
type="currency"
il s'appliquera alors automatiquement le bon modèle, comme par leUIViewRoot#getLocale()
:Voir aussi la étiquette de la bibliothèque de documentation et la
DecimalFormat
javadoc.