50 votes

Mettre en forme un nombre avec un signe avant

Comment formater en Java un nombre avec son signe avant ?

Les nombres négatifs sont correctement affichés avec - tête, mais évidemment les nombres positifs ne sont pas affichés avec + .

Comment faire ça en Java ? Ma chaîne de format de devise actuelle est \#\#\#,\#\#\#,\#\#\#,\#\#\#,\#\#0.00 (oui, je dois formater les valeurs de devise positives/négatives)

65voto

JB Nizet Points 250258

Utilisez un sous-modèle négatif, comme décrit dans la javadoc pour DecimalFormat .

 DecimalFormat fmt = new DecimalFormat("+#,##0.00;-#");
System.out.println(fmt.format(98787654.897));
System.out.println(fmt.format(-98787654.897));

produit (dans ma langue française où l'espace est le séparateur de regroupement et la virgule est le séparateur décimal) :

 +98 787 654,90
-98 787 654,90

19voto

Tomasz Nurkiewicz Points 140462

L'API pour Formatter fournit un exemple :

 Formatter formatter = new Formatter();
System.out.println(formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E));
//e =    +2,7183

8voto

t3az0r Points 31

J'ai fait:

 private NumberFormat plusMinusNF = new DecimalFormat("+#;-#");

Integer newBalance = (Integer) binds.get("newBalance");
bindsForUpdate.put("plusMinus", plusMinusNF.format(newBalance));

qui a formaté des entiers positifs, par exemple 5 à "+5" et des entiers négatifs, par exemple -7 à "-7" (comme prévu)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X