加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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,并在文本框中实际写入的内容上添加一些验证逻辑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读