Modèle DecimalFormat

public static Ssortingng formatAmountUpToTwoDecimalNumber(Ssortingng amount) { if(amount==null || "".equals(amount)) { return ""; } Double doubleAmount = Double.valueOf(amount); double myAmount = doubleAmount.doubleValue(); NumberFormat f = new DecimalFormat("###,###,###,###,##0.00"); Ssortingng s = f.format(myAmount); return s; } 

"###,###,###,###,##0.00" , quel est exactement le but de ce modèle? Je crois que cela sert à deux fins

  1. regrouper des nombres, c’est-à-dire mettre mille virgule seperator
  2. pour append deux zéros après le nombre décimal, s’il ne manque pas de nombre décimal, convertissez 23 à 23.00

Mais pourquoi il y a "0" au lieu de "#" avant décimal? quel est exactement le but de ce zéro? Merci pour l’aide.

 Symbol Location Localized? Meaning 0 Number Yes Digit # Number Yes Digit, zero shows as absent 

De: http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

Donc, # n’est pas affiché lorsqu’il n’y a pas de numéro. Le 0 signifie qu’il y aura au moins 1 chiffre avant le séparateur décimal.

# ne mettra un chiffre que s’il ne s’agit pas d’un zéro non significatif. 0 mettra un chiffre même s’il s’agit d’un zéro final. Vous pouvez également utiliser des zéros devant si vous souhaitez imprimer un nombre fixe de chiffres.

Avec le zéro avant le dp, les petits nombres comme 0.23 seront affichés sous la forme 0.23. Sans cela, vous n’obtiendrez pas le zéro de gauche, il est donc simplement affiché sous la forme .23. Si vous avez un tableur comme Excel, vous pouvez le vérifier également.