2015-10-13 275 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