C# 运算符“-”不能应用于操作数“string”和“double”C
在使用计算器时,我试图使用文本框中的字符串和双精度来获得答案,在使用减法、乘法、除法和指数时出现了以下错误: 运算符-不能应用于操作数字符串和双精度 代码: 在尝试修补和解决这个错误之后,我无法有效地完成它。所以如果你能坚持下去,那就太好了,如果不是的话,我理解 假设结果为双精度,则括号位置为:C# 运算符“-”不能应用于操作数“string”和“double”C,c#,C#,在使用计算器时,我试图使用文本框中的字符串和双精度来获得答案,在使用减法、乘法、除法和指数时出现了以下错误: 运算符-不能应用于操作数字符串和双精度 代码: 在尝试修补和解决这个错误之后,我无法有效地完成它。所以如果你能坚持下去,那就太好了,如果不是的话,我理解 假设结果为双精度,则括号位置为: textBox1.Text = (results + Double.Parse(textBox1.Text).ToString()); 应该是: textBox1.Text = (results +
textBox1.Text = (results + Double.Parse(textBox1.Text).ToString());
应该是:
textBox1.Text = (results + Double.Parse(textBox1.Text)).ToString();
(results + Double.Parse(textBox1.Text)).ToString();
这个和那些喜欢它的
(results + Double.Parse(textBox1.Text).ToString());
应该是:
textBox1.Text = (results + Double.Parse(textBox1.Text)).ToString();
(results + Double.Parse(textBox1.Text)).ToString();
您正在将文本解析为double,然后立即调用ToString将其转换回字符串。您需要将ToString放在末尾,以将结果转换为字符串 您正在对返回值Double.Parse调用ToString。我很确定您想调用ToString查看算术运算的结果,但括号搞错了。我认为错误消息是自我解释的,您知道变量结果的类型是double,错误消息指出运算符-不能应用于操作数string和double,因此可以理解第二个操作数是string,由此可以得出结论。ToString在这里产生了问题。我想为你提出一个不同的解决方案;您可以这样做:
double currentNumber;
if (double.TryParse(textBox1.Text, out currentNumber))
{
switch (operation)
{
case "+":
textBox1.Text = (results + currentNumber).ToString();
break;
case "-":
textBox1.Text = (results - currentNumber).ToString();
break;
case "*":
textBox1.Text = (results * currentNumber).ToString();
break;
case "/":
textBox1.Text = (results / currentNumber).ToString();
break;
case "^":
textBox1.Text = (results ^ currentNumber).ToString();
break;
}
}
else
{
textBox1.Text = "Invalid input";
}
因为Double.Parse可能会在输入无效的情况下抛出FormatException,以避免像我建议的那个样继续使用TryParse 什么是结果?您的结果似乎是字符串类型的变量。不是吗?史蒂夫不是double@MohitShrivastava不,这是一个双重的请阅读指南,以提供代码样本。在这种情况下,示例应为字符串s=1d*1d.ToString;而不是当前帖子中的代码墙。谢谢!它起作用了,我还让指数与一点TinkeringeExcellent一起工作!很高兴听到这个消息,希望被否决这篇文章的人有一些个人报复,因为我可以这么说;-1.在其他两个答案中,TryParse总是比Parses好。2.比另外两个解释多一点