`
Chihom
  • 浏览: 6089 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java Puzzlers之二:找零时刻

阅读更多
同样简单
public class Change{
    public static void main(String args[]){
        System.out.println(2.0-1.10);
    }

}

由于double类型的不精确性,可能你的结果为0.8999999999999999.
可做以下修改
public class Change{
    public static void main(String args[]){
        System.out.println(new BigDecimal("2.0").subtract(new BigDecimal("1.10")));
    }

}

此处需注意
BigDecimal的实例对象是不可变型
   如果如下使用将得不到正确结果
  
   BigDecimal x=new BigDecimal("2.0");
   BigDecimal y=new BigDecimal("1.10");
   x.subtract(y);
   

   应该
  
   BigDecimal x=new BigDecimal("2.0");
   BigDecimal y=new BigDecimal("1.10");
   x=x.subtract(y);
   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics