Advertisement

BigDecimal遇到坑-equal与compareTo

阅读量:

文章结构概述

      • 引言
          1. 等于
          1. 比较

前言

在运营过程中存在一个具体需求,即当首付比例设定为10%时,不应设置融资上限。基于此,我编写了如下代码:

复制代码
    if (vo.getRatio().equals(new BigDecimal("0.1")) ){
    return null;
    }else {
    xxx
    }
    
    
      
      
      
      
      
    

随后测试人员找到我,指出“不对啊,当首付比例为10%时,依然存在加融上限的问题!”
我心里也觉得“不对啊,我明明添加了限制条件!”

后来查阅相关报文后发现,前端同事传递过来的参数是“Ratio”: 0.10

经过测试发现,“Ratio”: 0.1 可以实现限制功能,而“Ratio”: 0.10 却无法触发限制

如果代码逻辑是:
if (vo.getRatio().equals(new BigDecimal("0.10")) )

那么,“Ratio”: 0.1 将无法被限制,而“Ratio”: 0.10 却可以被限制

难道 new BigDecimal("0.1") 和 new BigDecimal("0.10")

全部评论 (0)

还没有任何评论哟~