|
关于BigDecimal 的不精确计算问题 view plaincopy to clipboardprint? BigDecimal bg1 = new BigDecimal(100.91); BigDecimal bg2 = new BigDecimal(5); BigDecimal bg3 = bg1.multiply(bg2); System.out.println(bg3); } public static void main(String[] args){ BigDecimal bg1 = new BigDecimal(100.91); BigDecimal bg2 = new BigDecimal(5); BigDecimal bg3 = bg1.multiply(bg2); System.out.println(bg3); } 输入结果为 504.549999999999982946974341757595539093017578125 实际结果应为 504.55 现在作了如下函数,可以解决一部分处理,但是测试时,有些case,还是有不精确的时候 比如 0.123 和 5E10相乘 scale设置为10的时候,小数部分并不全为零 |