正确的使用方式:

使用字符串调用BigDecimal构造函数或者采用valueOf,但是不要直接将数字作为构造函数参数。

BigDecimal correctWay1 = new BigDecimal("0.1");
BigDecimal correctWay2 = BigDecimal.valueOf(0.1);

错误的使用方式

BigDecimal wrongWay = new BigDecimal(0.1);

原因:采用上述构造方式,0.1是当成double传入的,double做科学计算的时候精度是有问题的​

两种方式使用对比图

正确使用BigDecimal方式(避免出现精度问题)_java