double値の10進区切り記号の後の不要な記号を削除しようとしています。私はそれをこのようにやっています:
DecimalFormat format = new DecimalFormat("#.#####");
value = Double.valueOf(format.format(41251.50000000012343));
しかし、このコードを実行すると、次のようにスローされます。
java.lang.NumberFormatException: For input string: "41251,5"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.valueOf(Double.java:447)
at ...
ご覧のとおり、Double.valueOf()
のような文字列ではうまく機能しますが"11.1"
、のような文字列では窒息します"11,1"
。これを回避するにはどうすればよいですか?次のようなよりエレガントな方法はありますか
Double.valueOf(format.format(41251.50000000012343).replaceAll(",", "."));
DecimalFormat
クラスのデフォルトの小数点記号値をオーバーライドする方法はありますか?他に何か考えはありますか?