我在 Linux 环境中解析十进制数时遇到问题。当我在 Windows 中解析时,一切正常。
下面是代码片段
字符串价格;
DecimalFormat FORMATTER = (DecimalFormat)DecimalFormat.getInstance();
double customPrice = FORMATTER.parse(price).doubleValue();
和结果
当 price='9' 然后 customPrice='9.0' - 没问题
当 price='1,00' Then customPrice='100.0' - 这是错误的
当 price='25,00' Then customPrice='2500.0' - 这是错误的
你能告诉我问题是什么吗? 谢谢
最佳答案
阅读此处 here关于语言环境,您可能正在使用 en_US,这会导致“,”符号分隔数千个组。
你也可以用
DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols(currentLocale);
unusualSymbols.setDecimalSeparator(',');
DecimalFormat weirdFormatter = new DecimalFormat(strange, unusualSymbols);
weirdFormatter.setGroupingSize(4);
声明你自己的分隔符
关于Java DecimalFormat - linux 中不正确的数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47812562/