概述
我们项目需求,要对两个BigDecimal类型的数据进行比较,
一开始呢,没去看数据库两个字段类型,觉得,这不是简简单单嘛?
for (PurGoodsTraceVo purGoodsTraceVo : systemReportDao.queryPurGoodsTraceList(queryObject)) {
if (distr.equals(distr3)) {
if (purGoodsTraceVo.getSendHosQty().equals(purGoodsTraceVo.getHosPurQty())) {
purGoodsTraceVos.add(purGoodsTraceVo);
}
}
if (distr.equals(distr2)) {
if (purGoodsTraceVo.getSendHosQty().equals(0)) ||purGoodsTraceVo.getStatus().equals("30")){
purGoodsTraceVos.add(purGoodsTraceVo);
}
}
if (distr.equals(distr1)) {
if (!purGoodsTraceVo.getSendHosQty().equals(purGoodsTraceVo.getHosPurQty())
&& (purGoodsTraceVo.getSendHosQty().equals(0)) {
purGoodsTraceVos.add(purGoodsTraceVo);
}
页面判断只有第一个条件成功,后面两个条件怎么都不生效。打断点进来看,传来的数据,值类型为BigDecimal!0.00 !
结果将判断用了compareTo,问题就解决~
for (PurGoodsTraceVo purGoodsTraceVo : systemReportDao.queryPurGoodsTraceList(queryObject)) {
if (distr.equals(distr3)) {
if (purGoodsTraceVo.getSendHosQty().equals(purGoodsTraceVo.getHosPurQty())) {
purGoodsTraceVos.add(purGoodsTraceVo);
}
}
if (distr.equals(distr2)) {
if ((purGoodsTraceVo.getSendHosQty().compareTo(BigDecimal.ZERO) == 0) ||purGoodsTraceVo.getStatus().equals("30")){
purGoodsTraceVos.add(purGoodsTraceVo);
}
}
if (distr.equals(distr1)) {
if (!purGoodsTraceVo.getSendHosQty().equals(purGoodsTraceVo.getHosPurQty())
&& (purGoodsTraceVo.getSendHosQty().compareTo(BigDecimal.ZERO) != 0)) {
purGoodsTraceVos.add(purGoodsTraceVo);
}
}
所以希望看到的小伙伴,在对BigDecimal类型数据进行判断的时候,千万记得用compareTo!
最后
以上就是朴素大树为你收集整理的BigDecimal类型的数据后端要做判断,要用compareTo!!的全部内容,希望文章能够帮你解决BigDecimal类型的数据后端要做判断,要用compareTo!!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复