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

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

作者: maolazhu | 来源:发表于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