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



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

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

最后,我希望我的BigDecimal是这样的,例如"135.40"它可以工作,但是在俄罗斯计算机上我得到了"135.00".我不明白为什么,这是错误还是什么?

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

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

如果要解析带有.的数字,请更改DecimalFormat的区域设置:

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

相关内容

  • 没有找到相关文章

最新更新