簡體   English   中英

IF 語句沒有打印正確的數字?

[英]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 應稅 = 總額 - 免稅 - 標准;

毛額可以等於任何數字,與豁免和標准相同

我認為計算給定收入范圍( 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;
} ... 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM