web接口中BigDecimal值比较不相等

 BigDecimal oldPrice=new BigDecimal(50);
        BigDecimal newPrice=new BigDecimal(50.00);

        out.println("直接比较"+oldPrice.equals(newPrice));
        out.println("直接比较"+newPrice.equals(oldPrice));
        out.println("比较float值:"+(oldPrice.floatValue()==newPrice.floatValue()));
        out.println("比较double值:"+(oldPrice.doubleValue()==newPrice.doubleValue()));

        BigDecimal oldPrice1=new BigDecimal("50.1");
        BigDecimal newPrice1=new BigDecimal("50.10");

        out.println("直接比较"+oldPrice1.equals(newPrice1));
        out.println("直接比较"+newPrice1.equals(oldPrice1));
        out.println("比较float值:"+(oldPrice1.floatValue()==newPrice1.floatValue()));
        out.println("比较double值:"+(oldPrice1.doubleValue()==newPrice1.doubleValue()));

输出结果

直接比较true
直接比较true
比较float值:true
比较double值:true
直接比较false
直接比较false
比较float值:true
比较double值:true

当从后台接受BigDecimal是从string字符串转成的,所以会保留小数点.如果原价是3.90,新价是3.9,则认为它两不相等.

转载于:https://my.oschina.net/u/1590027/blog/3028546

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值