我正在尝试使用asp.net
和c#
中的单选按钮制作一个简单的计算器。每个文本框中输入两个数字,单击提交按钮并输入标签。
我得到的错误是当选中单选按钮并单击提交时,我收到运行时错误;任何人都可以帮助诊断为什么?
这是我的代码:
int total;
if (rbAdd.Checked)
{
total = Convert.ToInt32(tbNo1.Text) + Convert.ToInt32(tbNo2.Text);
lblAns2.Text = total.ToString();
}
if (rbMult.Checked)
{
total = Convert.ToInt32(tbNo1.Text) * Convert.ToInt32(tbNo2.Text);
lblAns2.Text = total.ToString();
}
答案 0 :(得分:0)
仍然以相同方式失败的简化代码:
int total = 0;
int no1 = Convert.ToInt32(tbNo1.Text);
int no2 = Convert.ToInt32(tbNo2.Text);
if (rbAdd.Checked)
{
total = no1 + no2;
}
else if (rbMult.Checked)
{
total = no1 * no2;
}
lblAns2.Text = total.ToString();
答案 1 :(得分:0)
我已经尝试过您的代码,只有当我输入非整数值时才会收到错误消息(Input string was not in a correct format.
),因为您的转换代码为Convert.ToInt32(tbNo1.Text);
。
您希望输入的值只是整数吗?如果是,请尝试使用此代码(修改自 John Saunders 代码):
int total = 0;
int no1 = Convert.ToInt32(Math.Round(decimal.Parse(tbNo1.Text), 0));
int no2 = Convert.ToInt32(Math.Round(decimal.Parse(tbNo2.Text), 0));
if (rbAdd.Checked)
{
total = no1 + no2;
}
else if (rbMult.Checked)
{
total = no1 * no2;
}
lblAns2.Text = total.ToString();
您还必须验证输入的值以保护无效字符。
否则,如果您不需要将输入的值转换为整数,则可以使用以下代码:
decimal total = 0;
decimal no1 = decimal.Parse(tbNo1.Text);
decimal no2 = decimal.Parse(tbNo2.Text);
if (rbAdd.Checked)
{
total = no1 + no2;
}
else if (rbMult.Checked)
{
total = no1 * no2;
}
lblAns2.Text = total.ToString();