Comment utiliser DecimalFormat pour formater de l'argent?
l'entrée ressemble à ça 8.7000000
et je veux le formater à ressembler à celle 8.70 EUR
.
J'ai considéré en utilisant le DecimalFormat
classe:
Double number = Double.valueOf(text);
DecimalFormat dec = new DecimalFormat("#.## EUR");
String credits = dec.format(number);
TextView tt = (TextView) findViewById(R.id.creditsView);
tt.setText(credits);
Le résultat est 8,7 EUR
. Comment puis-je savoir le formateur à deux chiffres après la ,
?
source d'informationauteur Lost in OWL
Vous devez vous connecter pour publier un commentaire.
Veux également souligner ici, Jon Skeet point sur l'utilisation de nombre entier pour stocker toutes vos devises ne veux pas avoir affaire à virgule flottante erreurs dans l'argent.
Utilisation
.00
au lieu de.##
-0
signifie un chiffre,#
signifie un chiffre (mais de les masquer, si elle est égale à zéro).Ou de l'utilisation
setMinimumFractionDigits
:J'ai trouvé une solution sympa dans ce lien ci-dessous
http://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
en bref pour représenter une monnaie comme 92323345465.30 comme 92,323,345,465.30 simplement utiliser ###,###,###,###.00
Qui est, à chaque fois que vous utilisez '0', '0' sera remplacé par un autre chiffre, ou si il n'y a pas de chiffres pour le remplacer, alors IL APPARAÎTRA! Mais vous utilisez '#', puis si il n'y a pas de numéro de remplacer le"#", alors que l'espace est vide.
N'oubliez pas que vous pouvez même ajouter vos propres symboles comme $, etc en face de la mise en forme ou même après le formatage de chaîne de
Je pense, une bonne option serait de cette approche:
À l'aide de
#,###.00
le résultat de la valeur de 0.50 serait affiché comme ceci:Toutefois, si vous utilisez
#,##0.00
le résultat pour la même valeur doit être: