Maison > Java > javaDidacticiel > Comment analyser correctement les doubles avec une virgule comme séparateur décimal en Java ?

Comment analyser correctement les doubles avec une virgule comme séparateur décimal en Java ?

DDD
Libérer: 2024-12-12 22:07:16
original
632 Les gens l'ont consulté

How to Correctly Parse Doubles with Comma as Decimal Separator in Java?

Comment gérer la virgule comme séparateur décimal dans une double analyse

L'utilisation d'une virgule comme séparateur décimal peut entraîner des erreurs lors de l'utilisation du méthode standard Double.valueOf(). Considérez le code suivant :

String p = "1,234";
Double d = Double.valueOf(p); 
System.out.println(d);
Copier après la connexion

Ce code lancera une NumberFormatException en raison de la présence de la virgule. Pour résoudre ce problème, on pourrait envisager d'utiliser la technique de remplacement p = p.replaceAll(",", ".") . Cependant, il existe une approche plus efficace et localisée utilisant la classe java.text.NumberFormat.

Solution utilisant NumberFormat

La classe NumberFormat permet l'analyse des nombres en fonction à des paramètres régionaux spécifiques, y compris la gestion de différents séparateurs décimaux. Voici comment l'utiliser pour analyser un double avec un séparateur virgule :

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();
Copier après la connexion

Dans ce code, NumberFormat.getInstance(Locale.FRANCE) crée une instance de la classe NumberFormat avec la locale française, où la virgule est couramment utilisé comme séparateur décimal. La méthode format.parse() analyse ensuite la chaîne en un objet Number, qui peut être converti en double à l'aide de la méthode doubleValue().

Support multilingue

Pour les applications multilingues, la méthode Locale.getDefault() peut être utilisée pour obtenir les paramètres régionaux par défaut de l'utilisateur. system :

NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
Copier après la connexion

Cette approche permet au code de s'adapter aux paramètres régionaux préférés de l'utilisateur et de gérer les séparateurs décimaux en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal