我遇到了一個c#工資計劃舍入問題。小數點不正確舍入
我用15.50小時率x 39.75小時測試它。總收入達616.125美元,毛額達到616.13美元。
然後我做了25%的固定所得稅,這意味着(15.50 X 39.75),最終的淨產X 0.25 = 462.10
但是它一直顯示的462.09一個淨工資,所以它不能使用顯示部分的舍入總工資。在工資總額和所得稅能正確顯示
這裏是所有的代碼,我的猜測是,這條線需要等改變:
decimal incomeTax = Math.Round(grossPay, 3) * taxRate;
什麼,我需要做的任何想法得到它圓正確?
decimal hourlyRate = 0;
decimal hoursWorked = 0;
decimal grossPay = 0m;
decimal incomeTax = 0m;
decimal netPay = 0m;
decimal taxRate = .25m;
private void btnCalculate_Click(object sender, EventArgs e)
{
decimal hourlyRate = Convert.ToDecimal(txtHourlyRate.Text);
decimal hoursWorked = Convert.ToDecimal(txtHoursWorked.Text);
decimal grossPay = Math.Round(hourlyRate * hoursWorked, 3);
decimal incomeTax = Math.Round(grossPay, 3) * taxRate;
decimal netPay = grossPay - incomeTax;
txtGrossPay.Text = grossPay.ToString("c");
txtIncomeTax.Text = incomeTax.ToString("c");
txtNetPay.Text = netPay.ToString("c");
}
private void btnClear_Click(object sender, EventArgs e)
{
hourlyRate = 0;
hoursWorked = 0;
grossPay = 0m;
incomeTax = 0m;
netPay = 0m;
txtHourlyRate.Text = "";
txtHoursWorked.Text = "";
txtGrossPay.Text = "";
txtIncomeTax.Text = "";
txtNetPay.Text = "";
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
您應該只在計算的最後四捨五入,而不是在每個中間步驟。 –
但是,如果我不在乘法期間舍入總薪酬,那麼它不會正確計算。我需要它們在計算過程中被正確舍入 – Programmer7