[英]IF statement not printing correct numbers?
我正在用 Java 為家庭作業項目創建一個簡單的稅級應用程序。
它采用總收入,減去用戶擁有的免稅數量,並減去標准扣除額,得出等於應稅收入的總額,將其置於稅級中,並進行計算以告知用戶應繳稅款。
我在 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 應稅 = 總額 - 免稅 - 標准;
毛額可以等於任何數字,與豁免和標准相同
我認為計算給定收入范圍( rangemin
, rangemax
)的稅收的一般公式應該是:
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;
} ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.