我在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' - 这是错误的
你能告诉我这是什么问题吗? 感谢
答案 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();