-1

我正在使用Visual Studio 和代码创建一个 C# 计算器控制台,当我键入和调试我的应用程序时,我收到此错误“错误 CS0029 无法隐式地将类型 'string' 转换为 'double'”。我认为我的代码不兼容。有人可以帮助我吗?

Console.WriteLine("\t\t\tCalculator in C#\r");
Console.WriteLine("\t\t\t-----------------\r");
 
Console.WriteLine("\t\tEnter First Number\r"); 
double num1 = Double.Parse(Console.ReadLine());

Console.WriteLine("\t\tSelect an Operator: ( +, -, *, /, ^)\r");

 
double opp = Console.ReadLine(); ---- WITH THIS LINE??**
 
Console.WriteLine("\t\tEnter second Number\r"); 
double num2 =  Double.Parse(Console.ReadLine());
4

2 回答 2

0

在特定的行中,您需要一个操作员。这应该用charor表示string,而不是 double。

Console.WriteLine("\t\tSelect an Operator: ( +, -, *, /, ^)\r");
string opp = Console.ReadLine(); // Change here

运算符+-*/^不是数字,不能用双精度表示。您可以添加额外的检查以确保用户输入了有效的运算符

于 2020-02-01T15:17:04.983 回答
0

这是因为Console.ReadLine()正在返回字符串。但是您正试图将该字符串放入您的double变量中。如果您希望用户输入运算符(+、-、...),则将 opp 变量设为 type string。如果用户应该为操作员发送一个数字(例如,1 代表“+”,2 代表“-”,3 代表“*”),然后将行更改为

double opp = Douoble.Parse(Console.ReadLine());

在这两种情况下,您都应该让用户知道您期望什么类型的输入。

如果有任何不清楚的地方,请务必告诉我

于 2020-02-01T16:10:24.620 回答