DecimalFormat(),俄罗斯计算机的问题

DecimalFormat(), probleme with russian computers

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

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

最后我希望我的 BigDecimal 像这样 "135.40" 它有效,但在俄罗斯计算机上我得到 "135.00"。不明白为什么,这是bug还是什么?

俄语区域设置中的小数点分隔符是 ,。这就是为什么数字在 . 处被截断的原因,这对俄语区域设置无效。

decimalFormat.parse("135,40") 应该给你所需的大数。

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

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