*关于工资薪金所得应交个人所得税的具体计算方法如下:

“应税所得=取得的收入-免税收入-费用扣除额

“应交的个税=应税所得*适用税率-速算扣除数。

“其中:

“1。免税收入包括有:个人按照规定交纳的社会保险金和住房公积金,等。

“2。费用扣除额(即平常所说的所谓的“起征点”)自2006年1月1日起,全国统一执行1 600元的标准。目前法定的费用扣除额为800元,但各地在执行中存在擅自提高的情况,因此各地实际的费用扣除额并不一样。

“3。税率为5%-45%九级超额累进税率。由于超额累进税率的计算较为复杂,因此转化为使用适用税率和速算扣除数的简化算法。具体适用税率和速算扣除数可查阅税率表:

“(应税所得、适用税率%、速算扣除数)

“0-500、5、0

“500-2 000、10、25

“2 000-5 000、15、125

“5 000-20 000、20、375

“20 000-40 000、25、1 375

“40 000-60 000、30、3 375

“60 000-80 000、35、6 375

“80 000-100 000、40、10 375

“100 000以上、45、15 375

DATA : l_salary type f.

PARAMETERS p_salary type string.

TRY .

l_salary = p_salary.

CATCH cx_root.

WRITE ‘Error input’ .

exit.

ENDTRY.

DATA:

l_sal_for_calc type p ,

l_house_fund type f ,

l_house_fund_p type p ,

l_old_passion type p ,

l_medicial type p ,

l_unemployed type p ,

l_tax type f.

if l_salary > 6705 .

l_sal_for_calc = 6705.

endif.

l_medicial = l_sal_for_calc / 100 * 2 .

l_house_fund = l_salary / 100 * 7.

if l_house_fund > 517 .

l_house_fund = 517 .

endif.

l_old_passion = l_sal_for_calc / 100 * 8.

l_unemployed = l_sal_for_calc / 100 * 1.

WRITE : / , ‘Medical: ’ ,l_medicial,

/ , ‘Unemployee: ’ ,l_unemployed,

/ , ‘Old Passion: ’ ,l_old_passion,

/ , ‘House Fund: ’ ,l_house_fund .

l_sal_for_calc = l_salary - l_medicial - l_unemployed - l_old_passion - l_house_fund.

l_sal_for_calc = l_sal_for_calc - 1600 .

DATA : l_tmp type f .

if l_sal_for_calc < 0 .

l_tax = 0 .

else .

l_tmp = l_sal_for_calc - 500 .

if l_tmp < 0 .

l_tax = l_tax + l_sal_for_calc * 5 / 100 .

else .

l_tax = l_tax + 500 * 5 / 100.

l_sal_for_calc = l_sal_for_calc - 500 .

l_tmp = l_sal_for_calc - 1500.

if l_tmp < 0 .

l_tax = l_tax + l_sal_for_calc * 10 / 100 .

else.

l_tax = l_tax + 1500 * 10 / 100.

l_sal_for_calc = l_sal_for_calc - 1500 .

l_tmp = l_sal_for_calc - 3000.

if l_tmp < 0 .

l_tax = l_tax + l_sal_for_calc * 15 / 100 .

else.

l_tax = l_tax + 3000 * 15 / 100.

l_sal_for_calc = l_sal_for_calc - 3000 .

l_tmp = l_sal_for_calc - 15000.

if l_tmp < 0 .

l_tax = l_tax + l_sal_for_calc * 20 / 100 .

else.

l_tax = l_tax + 15000 * 20 / 100.

l_sal_for_calc = l_sal_for_calc - 15000 .

endif.

endif.

endif.

endif.

l_sal_for_calc = l_sal_for_calc - 500.

endif.

NEW-LINE.

WRITE :/ ’tax:’ , l_tax.