我有一个BigDecima
l,我将其转换为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;