美文网首页
doubule在商用计算中的替代方案

doubule在商用计算中的替代方案

作者: 田真的架构人生 | 来源:发表于2017-08-16 21:22 被阅读0次

由于在java中double类型数据存储的特殊性,在进行商用计算时往往会出现错误的结果,所以不得不用BigDecimal来取代double来进行计算。
在构造Bigdecimal对象时,API提供了double入参,但这是一个陷阱,由double构造的BigDecimal结果也是不可预知的,所以,只能选择用String来构造BigDecimal

BigDecimal bg1 = New BigDecimal(str);
BigDecimal bg2 = New BigDecimal(str);

BigDecimal常用操作
1,加

bg1.add(bg2);
精度为max(bg1.scale(), bg2.scale())

2,减

bg1.subtract(bg2);
精度为max(bg1.scale(), bg2.scale())

3,乘

bg1.multiply(bg2);
精度为maxbg1.scale() + bg2.scale()

4,除以

bg1.divide(bg2, int scale, RoundingMode.HALF_UP)
精度为指定的scale,RoundingMode.HALF_UP为舍入模式

相关文章

网友评论

      本文标题:doubule在商用计算中的替代方案

      本文链接:https://www.haomeiwen.com/subject/vcewrxtx.html