ITPub博客

首页 > 应用开发 > Java > doubule在商用计算中的替代方案

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

原创 Java 作者:541732025 时间:2013-09-02 20:18:14 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为舍入模式

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28912557/viewspace-772055/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-05-23

  • 博文量
    127
  • 访问量
    478504