使用BigDecimal传double存在精度丢失问题,比如传入43.40希望舍0保留一位小数,结果是43.3;应该是43.4啊

new BigDecimal(43.40).setScale(1, BigDecimal.ROUND_DOWN).doubleValue();

解决,把double转为String类传入,解决

new BigDecimal(43.40+"").setScale(1, BigDecimal.ROUND_DOWN).doubleValue();