作者 : kyle   时间 : 2018-09-29   浏览 : ...

double类型数据转成BigDecimal类型数据,直接使用new BigDecimal(),转换后的数值不准确。可以使用 BigDecimal.valueOf() 方法。

public static void main(String[] args) {
    double a = -0.0025;
    BigDecimal b1 = new BigDecimal(a);
    BigDecimal b2 = BigDecimal.valueOf(a);
    BigDecimal b3 = new BigDecimal("-0.0025");
    System.out.println(b1);// -0.0025000000000000000520417042793042128323577344417572021484375
    System.out.println(b2);// 结果为 -0.0025
    System.out.println(b3);// 结果为 -0.0025
    System.out.println(b1.compareTo(b2));// 结果为 -1
    System.out.println(b1.compareTo(b3));// 结果为 -1
    System.out.println(b2.compareTo(b3));// 结果为 0
}


原创文章如转载,请注明本文链接: http://www.seaxiang.com/blog/double_to_bigdecimal
seaxiang  All Rights Reserved   粤ICP备15083047号-1