BigDecimal不要使用double来初始化

public void test() {

BigDecimal a =newBigDecimal(1.1);

BigDecimal b = BigDecimal.valueOf(1.1);

BigDecimal c =newBigDecimal("1.1");

System.out.println(a);//1.100000000000000088817841970012523233890533447265625

System.out.println(b);//1.1

System.out.println(c);//1.1

}

因为计算机01的方式对于十进制的0.1是无法精确表示的,所以对于double数字只能接近表示,如果用这个double来初始化bigDecimal的话就会出现同样的问题。

你可能感兴趣的:(BigDecimal不要使用double来初始化)