BigDecimal 精度问题解决(任何模式roundingMode都可以计算精度)

解决精度核心类BigDecimal

里面的核心方法就是BigDecimal 设计到+ - * /运算的方法

在使用BigDecimal计算精度是一定需要使用BigDecimal里面的加减乘除运算方法,这样就不会造成精度丢失

如果在 使用精度保留和模式setScale(int newScale, int roundingMode) 截取是有精度问题,可以参考java工具类 http://www.hutool.cn/里面的NumberUtil.java

碰到的精度问题一般为向上和向下取整是发生,偶尔在new BigDecimal(Dobule)也会发生,这个时候根据hutool的源代码,可以看出

里面一直都是使用string来new BigDecimal 保证精度, 所以采用new BigDecimal(double.tostring)来保证精度 ,使用字符串来创建BigDecimal

你可能感兴趣的:(BigDecimal 精度问题解决(任何模式roundingMode都可以计算精度))