以下是一个简单的个人所得税计算示例(中国标准):
function calculateTax(income) {
// 起征点
const threshold = 5000;
// 五险一金假设为20%
const insurance = income * 0.2;
// 应纳税所得额
const taxableIncome = income - insurance - threshold;
// 税率表
const taxBrackets = [
{ min: 0, max: 36000, rate: 0.03 },
{ min: 36000, max: 144000, rate: 0.1 },
{ min: 144000, max: 300000, rate: 0.2 },
{ min: 300000, max: 420000, rate: 0.25 },
{ min: 420000, max: 660000, rate: 0.3 },
{ min: 660000, max: 960000, rate: 0.35 },
{ min: 960000, max: Infinity, rate: 0.45 }
];
let tax = 0;
for (const bracket of taxBrackets) {
if (taxableIncome > bracket.min) {
const taxableAmount = Math.min(taxableIncome, bracket.max) - bracket.min;
tax += taxableAmount * bracket.rate;
}
}
return tax.toFixed(2);
}
// 示例:月收入20000元
console.log(calculateTax(20000)); // 输出应缴税额
计算说明:
- 应纳税所得额 = 月收入 - 五险一金 - 起征点5000元
- 根据超额累进税率计算
- 示例中20000元月收入应纳税约890元