这是因为代码中,double不可以强转BigDecimal
需要使用Double.toString(bb)转成string后,再转成BigDecimal
这个需要注意下。
double bb = 0.001;
BigDecimal money = new BigDecimal(bb);
System.out.println("========: " + money );
输出:0.001000000000000000020816681711721685132943093776702880859375
看到强转BigDecimal输出是错误的。
需要把bb转成string后,再转成BigDecimal
System.out.println("========: " + new BigDecimal(Double.toString(bb)));
输出:0.001 正确