我试图获取BigDecimal值小数点后的位数。
BigDecimal big = new BigDecimal(1231235612.45);
String[] str = big.toPlainString().split("\\.");
System.out.println(" Decimal Value: " + str[1]);
使用这个我得到以下输出 - 十进制值:4500000476837158203125 。 Actualy我想根据原始BigDecimal值 (1231235612.45) 显示仅45 。 所以,我的预期输出是十进制值:45 。 但是,在转换时,它会在小数点后添加更多数字。 是否有任何方法或代码可以从BigDecimal获得完全相同的值?
答案 0 :(得分:2)
不要使用BigDecimal的双构造函数(不建议使用Javadoc)。
使用String构造函数
new BigDecimal("1231235612.45");
或使用MathContext
new BigDecimal(1231235612.45, MathContext.DECIMAL64);