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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容