3
votes

Utilisation du format de chaîne pour ajouter le signe dollar et des virgules à mes chiffres

Je suis relativement nouveau en Java, et j'ai une ligne de code avec laquelle je suis aux prises:

Income     $50,000.00

Je voudrais ajouter un $ et des virgules au revenu, mais quand J'essaye de l'ajouter dans la ligne, j'obtiens des erreurs ou le $ apparaît au mauvais endroit.

Donc actuellement il imprime:

Income      50000.00

mais Je voudrais qu'il imprime:

System.out.println(String.format("%-14s%10.2f","Income",income));

S'il y a un moyen d'ajouter ces ajouts tout en gardant «Revenu» et les chiffres bien espacés, ce serait préféré. :)


2 commentaires

pouvez-vous fournir une entrée d'échantillon et la sortie souhaitée


Copie possible de stackoverflow.com/questions/5379231 /… .


3 Réponses :


2
votes

Si vous souhaitez afficher le montant $ au format numérique américain, essayez:

DecimalFormat dFormat = new DecimalFormat("####,###,###.##");
System.out.println("$" + dFormat.format(income));


2 commentaires

Mieux encore: NumberFormat.getCurrencyInstance (Locale.US)


Lorsque j'essaye d'utiliser le code, j'obtiens l'erreur "Impossible de trouver le symbole"



1
votes

Vous devez utiliser le format décimal et formater le nombre.

-> 1,000,000 for 1000000         
-> 10,000 for 10000         
-> 1,000 for 1000

Le résultat sera

DecimalFormat formatter = new DecimalFormat("#,###,###");
String yourFormattedString = formatter.format(100000);
System.out.println("$" + yourFormattedString);


5 commentaires

Pourquoi cela a-t-il été rejeté? La réponse ici n'est pas différente de celle ci-dessus


La question spécifiquement demandait une mise en forme avec le signe $, et cette réponse ne le fait pas.


@Andreas Il me semble que la ligne System.out.println ("$" + yourFormattedString); utilise le signe dollar.


@FredK Vous voulez dire l'instruction print qui a été ajoutée à la réponse après j'ai laissé le commentaire? --- Notez également que je ne suis pas un vote défavorable, je ne fais que comprendre pourquoi un vote négatif aurait pu être donné.


Mieux encore: NumberFormat.getCurrencyInstance (Locale.US)



1
votes

Solution avec String.format uniquement:

System.out.println(String.format("%-14s$%,.2f","Income",50000.));

il imprimera Revenu 50 000,00 $


0 commentaires