2015-12-16 72 views
0

我試圖找到基於包裹重量的送貨費用的總成本。初學Java如果其他範圍語句

爲什麼當我放入超過2.5的東西時,會出現2個答案?

如:

Please enter parcelweight 
3 
The charge is 8.55 
The charge is 7.3500000000000005 

相應的代碼是:

if(parcelweight < 2.5) 
    { 
     System.out.println("The charge is" +parcelweight*3.5);  

    } 
    else { 

     if((parcelweight >=2.5 && parcelweight <=5)); 
     { 
      System.out.println("The charge is" +parcelweight*2.85); 
     } 

     if(parcelweight > 5); 
     { 
      System.out.println("The charge is" +parcelweight*2.45); 
     } 
    } 
+0

這不是一個浮點比較不匹配,不管它是什麼值,它都不能比較> f和<= f在同一時間。而且3從不比較> 5,不管使用哪種浮點變量。 –

回答

1

你應該在消除;後添加else如果(.... );這樣的:

else if(parcelweight > 5)