Java DecimalFormat - linux中的数字格式不正确

时间:2017-12-14 11:44:31

标签: java linux decimalformat

我在Linux环境中解析十进制数时遇到问题。当我在Windows中解析时,一切都没问题。

下面是代码段

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

结果

当价格=' 9'然后customPrice =' 9.0' - 没关系

当价格=' 1,00'然后customPrice =' 100.0' - 这是错误的

当价格=' 25,00'然后customPrice =' 2500.0' - 这是错误的

你能告诉我这是什么问题吗? 感谢

2 个答案:

答案 0 :(得分:1)

在此处阅读here有关区域设置的信息,可能您正在使用en_US,这会导致','符号分隔数千个组。

你也可以使用

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

陈述自己的分隔符

答案 1 :(得分:1)

您可以更改DecimalFormat的小数分隔符。使用具有所需语言环境的NumberFormat的最简单方法,例如:

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