我的程序允许您从组合框中选择产品,项目数量,并允许您在文本框中写入价格,它将计算金额(项目数*价格),30%折扣和折扣后价格。
如果每个方框都已填满,则不会显示错误,但如果我将项目组合数量和/或价格清空,我会收到此错误:
抛出异常:mscorlib.dll中的'System.FormatException' 附加信息:输入字符串的格式不正确。
它会突出显示这一行:price = double.Parse(textBox1.Text);
private void button1_Click(object sender, EventArgs e)
{
double amount, price, dis,
itemnum = double.Parse(comboBox2.Text),
disrate = 30.0, totalafterdis;
price = double.Parse(textBox1.Text);
amount = price * itemnum;
dis = amount * (disrate / 100);
totalafterdis = amount - dis;
textBox2.Text = amount.ToString();
textBox3.Text = dis.ToString();
textBox4.Text = totalafterdis.ToString();
}
我对C#并不熟悉,所以我不确定这是否是一个菜鸟错误。
答案 0 :(得分:1)
如果您将textBox1留空,则会出现此错误。此异常基本上告诉您,您输入的值不适合解析为double类型。
这是一个例子。例如,您不能/不能将值" hello"解析为double类型。您的程序目前正在尝试将空/ null值解析为double,这是无效的。
您应该使用TryParse
功能,如下所示:
double result = 0;
bool isValidDouble = double.TryParse(textBox1.Text, out result);
//logical code here to check value of result
如果textBox1的值对于解析无效,则不会抛出异常。
答案 1 :(得分:0)
如果你没有插入任何东西,那么它会显示一个空字符串,不能转换为整数,所以试试这个:
double temp;
if(double.TryParse(textBox1.Text, out temp)){
price = double.Parse(textBox1.Text);
}