2014-04-01 80 views
-3

我正在爲Java作業項目創建一個簡單的稅務支持應用程序。IF語句沒有打印正確的數字?

它需要總收入,減去用戶有多少免稅額,並且減去等於應稅收入的總額的標準扣減額,這將其納入稅收支出並進行計算以告知用戶其到期稅。

我已經在IF聲明中設置了應納稅和稅收,應該對稅收到期進行適當的計算,但其價值幾乎完全翻倍。

的IF語句是:

if (taxable >= 1 && taxable <= 9075){ 
     taxrate = (int) (taxable * .10); 
    } else if (taxable >= 9076 && taxable <= 36900) { 
     taxrate = (int) (taxable * .15) + 908; 
    } else if (taxable >= 36901 && taxable <= 89350) { 
     taxrate = (int) (taxable * .25) + 5082; 
    } else if (taxable >= 89351 && taxable <= 186350){ 
     taxrate = (int) (taxable * .28) + 18195; 
    } else if (taxable >= 186351 && taxable <= 405100){ 
     taxrate = (int) (taxable * .33) + 45354; 
    } else if (taxable >= 405101 && taxable <= 406750) { 
     taxrate = (int) (taxable * .35) + 117541; 
    } else if (taxable >= 406751) { 
     taxrate = (int) (taxable * .396) +118119; 
    } 

隨機在兩端的數字加是以前的稅收等級稅到期,它添加到下一個支架等。我知道這可能是一個非常簡單的錯誤,所以任何Java專家都有解決方案嗎?

另外,應納稅的代碼是:

靜態INT徵稅=總值 - 免除 - 標準;

總值(GDP)可能等於任何數字,同樣有豁免和標準

+0

你能提供代碼段,你在哪裏提供價值「納稅」? –

+0

@deb_rider對不起,我編輯了它。 – engz

+0

我是否吃了瘋狂的藥或者是昨天問的這個問題? –

回答

2

我覺得一般的公式來計算稅收對於給定的收入範圍(rangeminrangemax)應該是:

taxrate = (taxable - rangemin) * rangePerc + rangemin * previousRangePerc 

使,在你的代碼:

if (taxable >= 1 && taxable <= 9075){ 
     taxrate = (int) (taxable * .10); 
} else if (taxable >= 9076 && taxable <= 36900) { 
     taxrate = (int) ((taxable - 9076) * .15) + 908; 
} else if (taxable >= 36901 && taxable <= 89350) { 
    taxrate = (int) ((taxable - 36901) * .25) + 5082; 
} ... 
+0

完美的工作,我忘了減法。謝謝! :) – engz