double.Parse中的输入字符串格式不正确我是C#新手。我正在尝试制作一个计算器,但出现以下错误:输入字符串的格式不正确。这是代码片段:doublenum1,num2,result;privatevoidbutton14_Click(objectsender,EventArgse){num1=Convert.ToDouble(textBox1.Text);textBox1.Text=String.Empty;num2=double.Parse(textBox1.Text);**//此处发生错误**result=num1-num2;}privatevoidbutton13_Click(objectsender,EventArgse){num1=Convert.ToDouble(textBox1.Text);textBox1.Text=String.Empty;num2=System.Double.Parse(textBox1.Text);**//此处发生错误**result=num1+num2;}如何将字符串转换为双精度类型?你想用这段代码实现什么?看来你的算法是错误的。正如其他人所说,这段代码textBox1.Text=String.Empty;num2=double.Parse(textBox1.Text);将抛出异常,因为空字符串无法转换为Double!所以,我想知道你为什么要重置你的字段。我想了想,也许我得到了你想做的事情。假设您在TextBox1中键入一个数字。然后按“-”键减去,再输入第二个数就可以看到结果了。是这样吗?如果是,您编写的代码将不会等待您的下一次输入!事实上,当你点击按钮时,它只是执行你写的所有行。我会写这样的东西。双num1,num2,结果;字符串操作;privatevoidbutton14_Click(objectsender,EventArgse)//减去Button{if(textBox1.Text!=String.Empty)//添加if语句查看textBox是否为空num1=Convert.ToDouble(textBox1.Text);否则num1=0;//如果textBox为空,设置num1为0textBox1.Text=String.Empty;操作=“-”;}privatevoidbutton13_Click(objectsender,EventArgse)//等于按钮{if(textBox1.Text!=String.Empty)num2=Convert.ToDouble(textBox1.Text);否则num2=0;if(operation=="-"){结果=num1-num2;文本框1。Text=Convert.ToString(结果);}if(operation=="+"){//Yougotit}//等等...}编辑:如果字符串为空,这将始终抛出异常,所以我添加了一个控件。如果字符串为空,则该值变为零。另请记住,Parse方法依赖于操作系统的文化来执行转换,因此请尝试将代码更改为num2=double.Parse(textBox1.Text,CultureInfo.InvariantCulture);您还可以考虑使用double.TryParse以获得更好的异常处理方法。解析转换失败,因为您清除了上一行的文本框。textBox1.Text=String.Empty;num2=double.Parse(textBox1.Text);它如何将String.Empty转换为Double?这不是正确的做法。例如,如果你点击“+”按钮,你必须检查一个数字是否已经存在。如果是,则将数字相加并显示结果:Doublenum;privatevoidAdd_Click(objectsender,EventArgse){If(num!=null){num==num+Convert.ToDouble(textBox1.Text);}else{num1==Convert.ToDouble(textBox1.Text);}textBox1.Text=num;似乎它应该从textbox2而不是textbox1获取num2值(您将textbox1.text设置为空并尝试再次将其解析为double)//您正在将textbox1设置为空textBox1.Text=String.Empty;//这里尝试将其解析为doublenum2=double.Parse(textBox1.Text);也不要直接使用Convert.ToDouble(textBox1.Text)。如果用户键入非数字值,您的代码将崩溃。首先检查它是否是一个有效的数字,总是使用doube.TryPrase()doublenum1;double.TryParse(textBox1.Text,outnum1);使用button_13和button_14似乎很难理解您的代码;我假设你正在尝试这样做:boolifNew=true;双num1,num2,结果;privatevoidAdd_Click(objectsender,EventArgse)){if(ifNew){num1=Convert.ToDouble(textBox1.Text);textbox1.Clear();如果新=假;结果+=num1;}else{num2=Convert.ToDouble(textBox1.Text);textbox1.Clear();结果+=num2;num1=0D;num2=0D;如果新=真;}}privatevoidEquals_Click(objectsender,EventArgse){textboxl.Text=string.Format("{0:N}",result);或者你可以在我的Convert.ToDouble中使用Double.Parse这取决于你的操作,但我想象如何添加操作你可以更改和编辑它取决于你的操作以上是C#学习教程:双精度输入字符串格式。教程,希望大家多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
