有没有朋友为我提供计算个人所得税的算法??

解决方案 »

  1.   

    zz:=应税收入-1000
    if zz>0 then
    begin
    case zz of
    0..500:税段
    begin
    SV:=0.05;(税率)
    KCS:=0;扣除数
    end;
    501..2000:
    begin
    SV:=0.10;
    KCS:=25;
    end;
    2001..5000:
    begin
    SV:=0.15;
    KCS:=125;
    end;
    5001..20000:
    begin
    SV:=0.2;
    KCS:=375;
    end;
    20001..40000:
    begin
    SV:=0.25;
    KCS:=1375;
    end;
    40001..60000:
    begin
    SV:=0.3;
    KCS:=3375;
    end;
    60001..80000:
    begin
    SV:=0.35;
    KCS:=6375;
    end;
    80001..100000:
    begin
    SV:=0.4;
    KCS:=10375;
    end;
    100001..1000000:
    begin
    SV:=0.45;
    KCS:=15375;
    end;
    end;
    zzb:=zza*sv-kcs;税 额
      

  2.   

    标准:
    x = 个人工资 - 社平工资
    x < 500               ----5%
    500 <= x < 2000       ----10%
    速算扣除25
    2000 <= x <5000       ----15%
    速算扣除125
    5000 <= x < 20000     ----20%            
    速算扣除375
    20000 <= x < 40000    ----25%         
    速算扣除1375
    40000 <= x < 60000    ----30%          
    速算扣除3375
    47000 <= x < 95000    ----35%
    60000         80000
    速算扣除6375
    95000 <= x < 191000   ----40%
    80000         100000
    速算扣除10375
    x >= 191000           ----45%
    100000以上
    速算扣除15375
    工资金额*适应税率-速算扣除数=应纳税额 ,税后扣除个人应纳社保金即是实发工资。
      

  3.   

    提供一个计算税后工资的函数给你:
    function CalculatePersonalTax(dSalary: Double; dAverage:Double):Double;
    var
      X: Double;
    begin
      X := dSalary - dAverage;  
      if X < 0 then
        Result := 0.00
      else if X <500 then
        Result := X * 0.05
      else if (X >= 500) and (X < 2000) then
        Result := X * 0.10 - 25
      else if (X >= 2000) and (X < 5000) then
        Result := X * 0.15 - 125
      else if (X >= 5000) and (X < 20000) then
        Result := X * 0.20 - 375
      else if (X >= 20000) and (X < 40000) then
        Result := X * 0.25 - 1375
      else if (X >= 40000) and (X < 60000) then
        Result := X * 0.30 - 3375
      else if (X >= 60000) and (X < 80000) then
        Result := X * 0.35 - 6375
      else if (X >= 80000) and (X < 100000) then
        Result := X * 0.40 - 10375
      else if X > 100000 then
        Result := X * 0.45 - 15375;
    end;
      

  4.   

    之前写错一点:
    社平工资为本地的社会平均工资,各个城市都可能不同,如广州的社会平均工资为1260.
    标准:
    x = 个人工资 - 社平工资
    x < 500               ----5%
    500 <= x < 2000       ----10%
    速算扣除25
    2000 <= x <5000       ----15%
    速算扣除125
    5000 <= x < 20000     ----20%            
    速算扣除375
    20000 <= x < 40000    ----25%         
    速算扣除1375
    40000 <= x < 60000    ----30%          
    速算扣除3375
    60000 <= x < 80000    ----35%         
    速算扣除6375
    80000 <= x < 100000   ----40%
    速算扣除10375
    x >= 100000          ----45%
    速算扣除15375
    工资金额*适应税率-速算扣除数=应纳税额 ,税后扣除个人应纳社保金即是实发工资。
      

  5.   

    给你参考参考啊!
    http://www.sinotalents.net/view/taxol.htm