2017-12-14 4 views
0

Linux環境で10進数の解析に問題があります。私がWindowsで解析すると、すべてが大丈夫です。Java DecimalFormat - Linuxで数値形式が正しくありません

以下

、コードスニペット

String price; DecimalFormat FORMATTER = (DecimalFormat)DecimalFormat.getInstance(); double customPrice = FORMATTER.parse(price).doubleValue();

とすると価格=

を結果 '9' するとcustomPrice = '9.0' - それはOK

価格= '1,00です'次にcustomPrice =' 100.0 ' - 間違っている

価格= '25、00' then customPrice = '2500.0' - 間違っている

問題が何であるか教えていただけますか? ありがとう

答えて

1

ここでは、ロケールについてhereを読んでください。おそらくen_USを使用しているため、 '、'記号は千のグループを分けます。

あなたはあなたがのDecimalFormatの小数点区切り文字を変更することができ、独自のsepeartors

1

を述べることも

DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale); 
unusualSymbols.setDecimalSeparator(','); 
DecimalFormat weirdFormatter = new DecimalFormat(strange, unusualSymbols); 
weirdFormatter.setGroupingSize(4); 

を使用することができます。目的のロケールでNumberFormatを使用する最も簡単な方法です(例:

NumberFormat FORMATTER = NumberFormat.getNumberInstance(Locale.GERMAN); 
double customPrice = FORMATTER.parse(price).doubleValue(); 
+0

)このソリューションは私の問題を解決しました。 – damians

関連する問題