如何从java中的bigdecimal获取精确的十进制值

时间:2016-04-26 14:39:21

标签: java java-8

我试图获取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获得完全相同的值?

1 个答案:

答案 0 :(得分:2)

不要使用BigDecimal的双构造函数(不建议使用Javadoc)。

使用String构造函数

new BigDecimal("1231235612.45");

或使用MathContext

new BigDecimal(1231235612.45, MathContext.DECIMAL64);