bref
Le modèle de décimalformat contient des sous-motifs positifs et négatifs, tels que "#, ## 0,00; (#, ## 0.00)":
/ ** * Créé par Shuai le 2016/7/11. * / public class Main {public static void main (String [] args) {// valeur positive bigdecimal bigdecimal = bigdecimal.valueof (-1221115151515151.541666); // valeur négative bigdecimal bigdecimal2 = bigdecimal.valueof (1221115151515151.541666); String Pattern = "#, ## 0.00; (#, ## 0.00)"; Decimalformat decimalformat = new Decimalformat (motif); decimalformat.format (bigdecimal); System.out.println (decimalformat.format (bigdecimal)); System.out.print (decimalformat.format (BigDecimal2)); }}Sortir:
(12 211,151 515,151,54) 12,211 151 515 151,54
Chaque sous-motif se compose d'un préfixe, d'une partie numérique et d'un suffixe. Par exemple, le modèle positif et négatif ci-dessus ne peut avoir que des préfixes et des suffixes différents. La partie numérique prend un modèle positif par défaut, ce qui signifie que "#, ## 0.0 #; (#)" est équivalent à "#, ## 0,0 #; (#, ## 0.0 #)" . ; Le modèle négatif par la suite est facultatif et ne peut être pas, sinon, la valeur négative sera affichée sous la forme par défaut (le préfixe est "-" dans la plupart des régions), tels que -12,211,151 515,151.54 . Fait intéressant, pour 0 valeurs, le modèle positif sera pris:
classe publique Main {public static void main (String [] args) {bigdecimal bigdecimal = bigdecimal.valueof (-0,00); BigDecimal Bigdecimal2 = Bigdecimal.Valueof (0,00); String Match = "0,00; (0,00)"; Decimalformat decimalformat = new Decimalformat (motif); decimalformat.format (bigdecimal); System.out.println (decimalformat.format (bigdecimal)); System.out.print (decimalformat.format (BigDecimal2)); }}Sortir:
0.000.00
Decimalformat peut analyser directement les chaînes:
System.out.print (decimalformat.parse (",,, 1 515,115.26262", new parseposition (0)));Sortir:
1515115.26262
Comme vous pouvez le voir, la méthode decimalformat.parse est automatiquement supprimée . Auparavant , il convient de noter ici que le premier caractère de la chaîne analysée doit être un nombre, ou suivi d'un nombre, sinon une exception sera lancée ou analysée comme nul . Le deuxième paramètre de Parse spécifie la position du premier caractère à analyser. L'exemple ci-dessus Les positions 0, 1, 2, 3 sont toutes analysées à partir de 1 et 4, 5 sont toutes analysées à partir de 5, c'est-à-dire, si elle est prise , le bit est rempli par le numéro à côté. S'il y a d'autres caractères, sauf et que les numéros apparaissent avant l'analyse , l'analyse analyse analyse au chiffre précédent de ce personnage, ou s'il y a d'autres caractères, sauf que les numéros apparaissent après Pares (y compris ), puis Pares Parse Parse Parse Parse au chiffre précédent de ce personnage.
Si le modèle contient plusieurs groupes de caractères avec différents nombres, par exemple: "#, ##, ###, ####", alors il utilise le groupe suivant, c'est-à-dire "#, ##, ###, ####" == "#####, ####" == "## ####, ####" == "## ### # ###
classe publique Main {public static void main (String [] args) {bigdecimal bigdecimal = bigdecimal.valueof (65652323265.626262); String Pattern = "#, ##, ##, ###, ### 0,00"; String Pattern2 = "#####, ### 0.00"; String Pattern3 = "##, ####, ### 0.00"; Decimalformat decimalformat = new Decimalformat (motif); System.out.println (decimalformat.format (bigdecimal)); Decimalformat.ApplyPattern (Pattern2); System.out.println (decimalformat.format (bigdecimal)); Decimalformat.ApplyPattern (Pattern3); System.out.println (decimalformat.format (bigdecimal)); }}Sortir:
656 5232,3265.63656 5232,3265.63656 5232 3265,63
Caractères de motifs spéciaux
Méthode de comptage scientifique
1234 peut être représenté comme 1,234 x 10 ^ 3, et le motif est "0. ### e0", qui formatera 1234 à 1.234e3.
Nombre d'entiers:
Le nombre de nombres significatifs est dérivé de la somme du nombre minimum de chiffres entiers et du nombre maximum de chiffres décimaux. Par exemple, "## 0. ## E0" Le nombre minimum de chiffres entiers est 1 et le nombre maximum de chiffres décimaux est de 2, alors le nombre valide est 3, et le format 12345 est "12.3e3". À l'exception du nombre valide, d'autres éléments sont omis.
Règles d'arrondi numérique
RouningMode peut être défini via la méthode decimalformat.setRoundingMode. La valeur par défaut est RouningMode.half_even.
Il est hors synchronisé. Si vous êtes accessible par plusieurs threads, vous devez implémenter la synchronisation par vous-même
Il est recommandé de créer une instance de format séparé pour chaque thread. Si plusieurs threads accèdent à un format en même temps, il doit être synchronisé à l'extérieur.
Exemple
// imprime un numéro à l'aide du format numéro, entier, devise, // et pour cent localisé pour chaque paramètre régional [] LOCALES = NumberFormat.GetAcAlAlleLocales (); Double Mynumber = -1234.56; Formulaire NumberFormat; pour (int j = 0; j <4; ++ j) {System.out.println ("format"); pour (int i = 0; i <localités.length; ++ i) {if (localités [i] .getCountry (). Length () == 0) {continuant; // Skip Language uniquement LOCALES} System.out.print (LOCALES [i] .getDisplayName ()); switch (j) {case 0: form = numberformat.getInstance (localités [i]); casser; Cas 1: form = numberformat.getIntegeRinstance (LOCALES [I]); casser; Cas 2: form = numberformat.getCurrencyInstance (LOCALES [i]); casser; Default: Form = NumberFormat.GetPercentInstance (LOCALES [I]); casser; } if (formulaire formeof decimalformat) {System.out.print (":" + ((decimalformat) form) .topattern ()); } System.out.print ("->" + form.format (myNumber)); essayez {System.out.println ("->" + form.parse (form.format (myNumber))); } catch (paSeException e) {}}}Référence: adresse originale
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.