double→BigDecimal変換ではnewではなくvalueofを使う。
newを使うと期待通りの値にならない。
double doubleVar = 0.1;
System.out.println("doubleVar:" + doubleVar);
BigDecimal aaa = BigDecimal.valueOf(doubleVar);
System.out.println("BigDecimal.valueOf(doubleVar):" + aaa);
BigDecimal bbb = new BigDecimal(doubleVar);
System.out.println("new BigDecimal(doubleVar):" + bbb);
結果
doubleVar:0.1
BigDecimal.valueOf(doubleVar):0.1
new BigDecimal(doubleVar):0.1000000000000000055511151231257827021181583404541015625