DecimalFormat(),俄罗斯计算机的问题
DecimalFormat(), probleme with russian computers
我有一个 BigDecima
l,我将其转换为 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;
我有一个 BigDecima
l,我将其转换为 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;