【发布时间】:2020-02-01 07:37:08
【问题描述】:
private void button1_Click(object sender, EventArgs e)
{
int res = 0;
try
{
res = Convert.ToInt32(costot.Text) / Convert.ToInt32(unidadesp.Text);
costou.Text = res.ToString();
}
catch (Exception ex) { }
}
【问题讨论】:
-
你的意思是你不知道如何在VB.Net中进行非整数除法?无论如何,这在 C# 中也不起作用:结果应该是十进制值。如果我解释正确,您正试图将 Total Value 除以 Number of Units,后者返回十进制类型。但是,你不应该做这种操作。如果您有单位价值/价格,则应将其乘以单位数量,而不是得出单位价值。您很可能会有一种舍入形式,因此,在某些时候,值将不再匹配......
-
此外,您应该在此处使用
decimal.TryParse()和int.TryParse()(在 VB.Net 中相同),因为 值 来自文本框。您永远无法确定您从用户输入中得到了什么。可能,使用 NumericUpDown 控件来帮助验证此输入。然后,您必须在格式化结果时考虑 CurrentCulture。不同的文化有不同的千位/小数分隔符和小数位数,例如,当您必须表示货币时(也可能需要货币符号)。 -
另外,检查分母中的 0。
-
感谢您的回复...我知道这不是一个好问题。无论如何,被除数来自十进制数据类型 (7000,50) 的数据库,除数是客户端直接输入的 (500)。我们必须将这些值除以 7000,50/500 = 14,001,并在点击事件发生时将其显示在文本框中。
-
我们正在使用这个代码: private void button1_Click(object sender, EventArgs e) { int res = 0; res = Convert.ToDouble(costot.Text) / Convert.ToDouble(unidadesp.Text); costou.Text = res.ToString();我们已经尝试了 decimal.TryParse() 和 int.TryParse(),我们正在寻找正确的语法。
标签: c# winforms textbox type-conversion