小数点区切り文字としてカンマを使用した Double の解析: 包括的なソリューション
小数点区切り文字としてカンマ (,) を使用するデータを扱う場合、 Double.valueOf() を使用して double に解析すると、NumberFormatException が発生する可能性があります。これは、Double.valueOf() が小数点としてピリオド (.) を想定しているためです。
1 つの解決策は、質問に示されているように、String.replaceAll() を使用してコンマをピリオドに置き換えることです。ただし、java.text.NumberFormat を使用した、より堅牢でロケールを意識したアプローチがあります。
ロケール固有の解析に NumberFormat を利用する
NumberFormat には、解析および解析するためのメソッドが用意されています。指定されたロケールに従って数値をフォーマットします。小数点としてカンマを使用して文字列を解析するには、次の手順を実行します。
このアプローチを示すコードは次のとおりです。
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue(); System.out.println(d); // Prints 1.234
NumberFormat を使用すると、カンマを小数点として使用した double 値をロケール固有の方法で解析でき、次のような場合でも正確な結果を保証できます。グローバル化されたアプリケーション。
以上がJava でカンマを小数点として使用して double を確実に解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。