2015-10-13 142 views
-5

我的代码是这样::返回布尔值

public Boolean calculation(){ 

     Double totalQuantitySum = 0d,totalAmountSum=0d; 
     Boolean balanced=false; 
     for(MaterialAcceptingRejectSheetCustomizationBean bean: materialAcceptingRejectSheetBean.materialAcceptingRejectSheetCustomizationBeanList){ 

      if(bean.totalAmount != null && bean.totalQuantity!= null){ 

       totalQuantitySum += bean.totalQuantity; 

       totalAmountSum += bean.totalAmount; 
       System.out.println(totalQuantitySum+" "+totalAmountSum); 
      } 
      if(totalQuantitySum.equals(materialAcceptingRejectSheetBean.totalQty) && totalAmountSum.equals(materialAcceptingRejectSheetBean.totalAmount)){ 
       balanced= true; 
      } 
     } 

     System.out.println(balanced); 
     return balanced; 

    } 

为什么这个函数总是返回false ???

+1

因为它永远不会成为现实? –

+1

我们应该怎么知道?我们有很多未知因素(数组,totalQuantitySum,...) – SomeJavaGuy

+0

是否有任何具体原因使用'Double'和'Boolean'而不是'double'和'boolean'?另外,'MaterialAcceptingRejectSheetCustomizationBean bean:materialAcceptingRejectSheetBean.materialAcceptingRejectSheetCustomizationBeanList' - 认真吗? – Clashsoft

回答

0

我只瞥了一眼,但我怀疑问题可能是你正在比较一个双。处理浮点数时,由于小数位数的原因可能会出现错误。

+0

如果该值设置为true,则循环的下一次迭代可以将其设置为假。尝试在平衡=真实之后休息一下; – user4900370