DecimalFormat(),俄语计算机出现问题

时间:2018-10-15 07:38:35

标签: java bigdecimal decimalformat

我有一个BigDecima l,我将其转换为String以对其进行一些修改。 最后,我尝试使用这部分代码将其转换回BigDecimal

DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setParseBigDecimal(true);
Amt = (BigDecimal) decimalFormat.parse(amount);

最后,我希望我的BigDecimal像这样"135.40" 并且可以使用,但是在俄语计算机上,我得到"135.00"。我不明白为什么,这是错误还是什么?

1 个答案:

答案 0 :(得分:6)

俄语语言环境中的小数点分隔符为,。这就是为什么数字会在.处被截断的原因,这对于俄语语言环境无效。

decimalFormat.parse("135,40")应该为您提供所需的十进制。

如果要使用.解析数字,请更改DecimalFormat的语言环境:

NumberFormat formatter = NumberFormat.getNumberInstance(Locale.US);
DecimalFormat decimalFormat = (DecimalFormat)formatter;