【发布时间】:2016-10-19 05:51:09
【问题描述】:
我是这方面的初学者,如果可以的话,请解释一下到底发生了什么以及为什么?谢谢。我正在创建一个窗口表单来计算员工的总工资和佣金,同时考虑员工的类型、他们的工作时间以及他们获得的销售收入。例如,我输入 S 作为员工类型,工作时间为 30 小时,销售收入为 200。但我不断收到这个错误,我不知道为什么。
“'System.FormatException' 类型的未处理异常发生在 mscorlib.dll
附加信息:输入字符串的格式不正确。"
这个错误即将出现
decimal commission = Convert.ToDecimal(txtSalesCommission.Text);
特别是它指向(txtSalesCommission.Text)。
这是它的代码。
private void btnCalculate_Click(object sender, EventArgs e)
{
string employeeType = txtEmployeeType.Text;
decimal hours = Convert.ToDecimal(txtHoursWorked.Text);
decimal revenue = Convert.ToDecimal(txtSalesRevenue.Text);
decimal commission = Convert.ToDecimal(txtSalesCommission.Text);
decimal totalPay = Convert.ToDecimal(txtTotalPay.Text);
txtSalesRevenue.Text = revenue.ToString("c");
txtSalesCommission.Text = commission.ToString("c");
txtTotalPay.Text = totalPay.ToString("c");
//Employee Types: S = Salaried Employees
// HC = Hourly Commission Employees
// HNC = Hourly Non-Commission Employees
if (employeeType == "S")
{
totalPay = (300 + commission);
commission = (revenue * .02m);
}
else if (employeeType == "HC")
{
totalPay = ((12 * hours) + commission);
commission = (revenue * .01m);
}
else if (employeeType == "HNC")
{
totalPay = (16 * hours);
commission = (revenue * 0);
}
txtTotalPay.Focus();
}
如果您认为这会在我的代码中的另一种情况下再次出现,或者如果您发现任何可能有问题的地方,请告诉我。谢谢!
【问题讨论】:
-
@AdrianoRepetti 这个问题将在几秒钟内结束,因为我们在 CR 上不处理损坏的代码。
-
赫斯拉赫,你是对的。从上一段开始,我认为他已经知道如何解决它