Clifford Nelson
private decimal CalculateTax(decimal income)
{
//•10% on taxable income from $0 to $8,500, plus
//•15% on taxable income over $8,500 to $34,500, plus
//•25% on taxable income over $34,500 to $83,600, plus
//•28% on taxable income over $83,600 to $174,400, plus
//•33% on taxable income over $174,400 to $379,150, plus
//•35% on taxable income over $379,150.
decimal incomeTax = 0;
CalculateTaxForBracket(379150.0m, .35m, ref incomeTax, ref income);
CalculateTaxForBracket(174400.0m, .33m, ref incomeTax, ref income);
CalculateTaxForBracket(83600.0m, .28m, ref incomeTax, ref income);
CalculateTaxForBracket(34500.0m, .25m, ref incomeTax, ref income);
CalculateTaxForBracket(8500.0m, .15m, ref incomeTax, ref income);
CalculateTaxForBracket(0.0m, .10m, ref incomeTax, ref income);
return incomeTax;
}
private void CalculateTaxForBracket(decimal taxBraketFloor, decimal taxRate, ref decimal calculatedTaxes, ref decimal remainingIncome)
{
if (remainingIncome > taxBraketFloor)
{
calculatedTaxes = calculatedTaxes + (remainingIncome - taxBraketFloor) * taxRate;
remainingIncome = taxBraketFloor;
}
}
Uwakpeter
Пожалуйста, вы все еще можете пролить больше света на эти вопросы, я всего лишь новичок, небольшое объяснение параметров может пройти долгий путь! Заранее спасибо.
Clifford Nelson
Комментируемая область была тем, что я нашел при поиске с помощью BING. Я просто использовал то, что нашел, и сделал из этого уравнение. Разве я ответил вам на вопрос, вы не оценили его или не приняли решение.
Uwakpeter
Какой аргумент я должен использовать для taxRate, видя, что мы не можем принять от пользователя, то есть taxRate уже известен, и он имеет разные значения в диапазоне от минимального до максимального.