C#更新文本框并在计算后转换其中的数据时出错
我是C#新手,对代码有点问题C#更新文本框并在计算后转换其中的数据时出错,c#,C#,我是C#新手,对代码有点问题 private void tbSold_TextChanged(object sender, TextChangedEventArgs e) { tbSold.Text = tbSold.Text.Replace(',', '.'); tbSold.Select(tbSold.Text.Length, 0); double BO = Convert.ToDouble(tbBought
private void tbSold_TextChanged(object sender, TextChangedEventArgs e)
{
tbSold.Text = tbSold.Text.Replace(',', '.');
tbSold.Select(tbSold.Text.Length, 0);
double BO = Convert.ToDouble(tbBought.Text);
double SO = Convert.ToDouble(tbSold.Text);
double TOT = ((SO / BO) * 100);
tbTotal.Text = Convert.ToString(TOT +"%");
}
现在是解释和问题。代码的第一部分是用点替换coma,这样我就可以在SQLExpress中插入数据
但我也想知道tbTotal中显示的百分比。我这里有两个问题。一个是,如果我删除tbsell文本框中的所有字符,就会出现错误。不管它们是否是十进制的。。。第二个是,如果有一个十进制值,我不会得到正确的值
如果我将转换放在buttonClick事件中以插入数据库,我会插入数据,但之后会出现错误
我现在可能遗漏了一些简单但无法理解的内容您无法将空白字符串(
“”
)转换为双精度-您将得到一个格式异常
。我会在bunded
字段中添加一些空白字符串检查(以及0
:
private void tbSold_TextChanged(object sender, TextChangedEventArgs e)
{
tbSold.Text = tbSold.Text.Replace(',', '.');
tbSold.Select(tbSold.Text.Length, 0);
double BO;
bool boughtPrased = double.TryParse(tbBought.Text, out BO);
// what should you do if the parse fails?
double SO;
bool soldParsed = double.Parse(tbSold.Text, out SO);
// what should you do if the parse fails?
double TOT = (SO / BO); // convert to percentage in format below
// what do you do if BO is 0?
// display as percentage with two decimal digits
tbTotal.Text = string.Format("{0:P2}",TOT);
}
你得到了什么错误?在哪一行?我可以运行应用程序…但是如果我在tbsell中输入一些值,然后删除该值,我会在mscorlib.dll中得到一个类型为“System.FormatException”的未处理异常。其他信息:输入字符串的格式不正确。非常感谢您的帮助…我没有收到任何错误现在,我将禁用在数据库中插入数据的按钮,这样我就不会在状态栏中出现意外错误和错误消息。如果我没有错,我应该使用“If(double.TryParse(tbbundle.Text,out BO)==false{}”