C#语句文本框总和
发布时间:2020-12-16 01:41:16 所属栏目:百科 来源:网络整理
导读:我试图用以下语句将3个文本框中的值相加,但是我似乎无法使它工作. 3个文本框的值显示为十进制.错误:mscorlib.dll中出现未处理的“System.FormatException”类型异常附加信息:输入字符串的格式不正确. decimal num1,num2,num3,total; num1 = Convert.ToDeci
我试图用以下语句将3个文本框中的值相加,但是我似乎无法使它工作. 3个文本框的值显示为十进制.错误:mscorlib.dll中出现未处理的“System.FormatException”类型异常附加信息:输入字符串的格式不正确.
decimal num1,num2,num3,total; num1 = Convert.ToDecimal(SSubTotalTextBox.Text); num2 = Convert.ToDecimal(SubTotalMTextBox.Text); num3 = Convert.ToDecimal(SubTotalTextBox3.Text); total = num1 + num2 + num3; TotalAmountTextBox.Text = Convert.ToString(total); 解决方法
问题中的细节不够,但我的直觉告诉我这是问题所在:
您在文本框中的内容如40,5,但计算机当前文化的小数分隔符设置为.(点).因此,在将40,5转换为小数时会出现异常,因为它不明白,. 它可能是另一种方式,你正在写40.5,但它预计会得到40.5. 编辑 我看到Florian von Spiczak回答的评论,似乎字符$出现在文本框中.如果是,那显然是个问题. 尝试使用textBox.Text.Replace(“$”,“”)替换Convert.ToDecimal调用中的所有textBox.Text.这应该摆脱$并使其正确解析. 那么完整的代码应该是: decimal num1,total; num1 = Convert.ToDecimal(SSubTotalTextBox.Text.Replace("$","")); num2 = Convert.ToDecimal(SubTotalMTextBox.Text.Replace("$","")); num3 = Convert.ToDecimal(SubTotalTextBox3.Text.Replace("$","")); total = num1 + num2 + num3; TotalAmountTextBox.Text = "$"+ total; 此外,您应该将Convert.ToDecimal替换为decimal.Parse或decimal.TryParse,并在文本框中实际写入的内容上添加一些验证逻辑. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |