ホームページ > Java > &#&チュートリアル > Java で小数点としてカンマを使用して double を正しく解析するにはどうすればよいですか?

Java で小数点としてカンマを使用して double を正しく解析するにはどうすればよいですか?

DDD
リリース: 2024-12-12 22:07:16
オリジナル
635 人が閲覧しました

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

二重解析でカンマを小数点区切り文字として処理する方法

小数点区切り文字としてカンマを使用すると、標準の Double.valueOf() メソッド。次のコードを考えてみましょう:

String p = "1,234";
Double d = Double.valueOf(p); 
System.out.println(d);
ログイン後にコピー

このコードは、カンマが存在するため NumberFormatException をスローします。この問題に対処するには、p = p.replaceAll(",", ".") 置換手法の使用を検討できます。ただし、java.text.NumberFormat クラスを使用した、より効率的でローカライズされたアプローチがあります。

NumberFormat を使用した解決策

NumberFormat クラスを使用すると、以下に従って数値を解析できます。さまざまな小数点区切り文字の処理を含む、特定のロケール設定に対応します。これを使用してカンマ区切りで double を解析する方法は次のとおりです。

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();
ログイン後にコピー

このコードでは、NumberFormat.getInstance(Locale.FRANCE) はフランス語ロケールで NumberFormat クラスのインスタンスを作成します。ここで、カンマは小数点の区切り文字としてよく使用されます。次に、format.parse() メソッドは文字列を Number オブジェクトに解析します。このオブジェクトは、doubleValue() メソッドを使用して double に変換できます。

多言語サポート

多言語アプリケーションの場合、Locale.getDefault() メソッドを使用してユーザーのデフォルトのロケールを取得できます。 system:

NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
ログイン後にコピー

このアプローチにより、コードがユーザーの優先ロケールに適応し、それに応じて小数点区切り文字を処理できるようになります。

以上がJava で小数点としてカンマを使用して double を正しく解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート