例如 0.29*94.00000000
网上说 用BigDecimal 然后我用了
BigDecimal(d1).multiply(BigDecimal(d2)).setScale(decimalPoint, BigDecimal.ROUND_DOWN)
.toPlainString()
计算结果 27.25999999 我是精确 8位的
这样 的结果很坑 因为实际结果是 27.26000000
后来 找了 半天 遇到一种写法
System.out.println("aa======"+ BigDecimal(0.29.toString()).multiply(BigDecimal(94.00000000.toString())).setScale(8, BigDecimal.ROUND_DOWN))
2020-07-07 18:34:11.016 10387-10387/com.mochain.bqmex.debug I/System.out: aa======27.26000000
通过字符串的方式 传入BigDecimal似乎解决了问题