Decimalformat est une sous-classe de béton de NumberFormat, utilisée pour formater les nombres décimaux. Il peut soutenir la localisation de différents types de nombres, y compris les entiers (123), les nombres à point fixe (123,4), les nombres représentés par la notation scientifique (1,23e4), les pourcentages (12%) et les montants (123 $).
Préduisons d'abord l'utilisation de Decimalformat:
importer java.text. *; import java.util. *; classe publique decimalformatDemo {public static void main (String args []) {decimalformat df1 = new Decimalformat ("###, ###. 0000"); // Utilisez le format par défaut du système System.out.println (df1.format (1111111123456.12)); Locale.setDefault (Locale.us); DECIMALFORMAT DF2 = NOUVEAU DECIMALFORMAT ("##, ###. 0000"); // Utilisez le format US System.out.println (DF2.Format (1111111123456.12)); // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (DECIMALFORMAT) NumberFormat.getPercentInstance (); } catch (classcastException e) {<span style = "white-space: pre"> </span> System.err.println (e); } df5.ApplyPattern ("00.0000%"); System.out.println (DF5.Format (0,34567)); System.out.println (DF5.Format (1.34567)); }} (1) pour l'arrondi des données:
Decimalformat contient un ensemble de symboles, et la signification de chaque symbole est expliquée comme suit:
0 un nombre
# Un nombre, sans compter 0
. Embarqueur pour séparateur décimal
, Placeholder pour le délimiteur de groupe
; Format délimité.
- Préfixe négatif par défaut.
% multiplié par 100 et affiché en pourcentage
? Multiplier par 1000 et afficher en kilogramme; remplacer par des symboles de devise; Si vous êtes écrit, remplacez par des symboles de monnaie internationaux. S'il apparaît dans un modèle, utilisez le séparateur décimal de la devise au lieu du séparateur décimal.
X Préfixe ou tout autre caractère utilisé dans le suffixe pour se référer à des caractères spéciaux dans le préfixe ou le suffixe.
Par exemple:
DECIMALFORMAT DF1 = NOUVEAU DECIMALFORMAT ("### 0.00"); // conserve deux décimales, et s'il y a moins de deux décimales, le zéro sera automatiquement complété System.out.println (df1.format (124.367)); System.out.println (df1.format (124.3)); Decimalformat df2 = new Decimalformat ("### 0. ##"); // conserve deux décimales, et s'il y a moins de deux décimales, le zéro sera complété System.out.println (df2.format (124.6)); System.out.println (df2.format (124)); DECIMALFORMAT DF3 = NOUVEAU DECIMALFORMAT ("000.000"); // conserve trois décimales et compenser les zéros où il y a des chiffres insuffisants System.out.println (df3.format (24)); DECIMALFORMAT DF = nouveau Decimalformat ("0.000e0000"); // Exponent System.out.println (df.format (1234.56)); Decimalformat nf = (decimalformat) NumberFormat.getPercentInstance (); //Percentsystem.out.println(nf.format(0.476354)); nf.ApplyPattern ("00,00%"); System.out.println (nf.format (0,476354)); Résultats en cours:
124,37 124,30 124,6 124 024.000 1.235e0003 48% 47,64%
(2) Pour la lecture et l'analyse des chaînes contenant des nombres formatés? La prise en charge de la résolution est incluse dans NumberFormat. Par exemple:
import java.util.locale; import java.text.numberformat; import java.text.parseException; classe publique decimalformat5 {public static void main (String args []) {// format local NumberFormat nf1 = NumberFormat.getInstance (); Objet obj1 = null; // l'analyse basée sur le format essaie {obj1 = nf1.parse ("1234,56"); } catch (parseException e1) {System.err.println (e1); } System.out.println (obj1); // Format allemand NumberFormat nf2 = NumberFormat.getInstance (Locale.German); Objet obj2 = null; // l'analyse basée sur le format essaie {obj2 = nf2.parse ("1234,56"); } catch (parseException e2) {System.err.println (e2); } System.out.println (obj2); }} Résultats en cours:
123456 // Opération aux États-Unis; Considéré la chaîne 1234.56 // opération en Allemagne; considéré comme une décimale
(3) pour Decimalformat et NumberFormat:
Decimalformat est une sous-classe de NumberFormat, son instance est spécifiée comme une région spécifique. Par conséquent, vous pouvez spécifier une région à l'aide de Numberformat.getInstance, puis de lancer la structure dans un objet Decimalformat. La documentation mentionne que cette technique peut être appliquée dans la plupart des cas, mais vous devez utiliser un bloc d'essai / capture pour entourer le casting au cas où la conversion ne fonctionnerait pas correctement (probablement en utilisant une zone étrange dans des situations très discrètes).
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.