我有一个 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") 应该给你想要的 bigdecimal。

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

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

关于java - DecimalFormat(),俄罗斯计算机的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52811850/

10-12 04:16