因此,作为测试自己的一件事,我正在考虑创建一个计算器;我知道它继续将我的数字改为ASCII,我不确定如何阻止它,这是我的代码,我希望我不会太愚蠢。
char operation;
String calculation;
double num1, num2, ans;
Console.WriteLine("Place your calculation in the form (x'symbol'y)");
calculation = Console.ReadLine();
num1 = calculation[0];
num2 = calculation[2];
operation = calculation[1];
switch (operation)
case '+':
ans = num1 + num2;
Console.WriteLine(num1 + num2);
break;
case '-':
ans = num1 - num2;
Console.WriteLine(num1 - num2);
break;
case '/':
ans = num1 / num2;
Console.WriteLine(num1 / num2);
break;
case '*':
ans = num1 * num2;
Console.WriteLine(num1 * num2);
break;
我知道有些大括号已经消失,它应该进行简单的计算,如1 + 2或3 * 7,只有一位数的计算。
答案 0 :(得分:0)
从Console.ReadLine获取值时尝试使用此代码:
num1 = double.Parse(calculation[0].ToString());
num2 = double.Parse(calculation[2].ToString());
你会注意到你从计算得到的值的类型[0]是一个字符串,而不是一个整数,所以现在,当你做num1 + num2时,它只是将字符串加在一起(连接)而不是而不是将值添加为整数。
拨打' ToString()'之后是必需的double.Parse不能用char调用 - 这个用例可能不是double的最佳用法,而且你可能有更好的契合度(现在的方式)使用int。
答案 1 :(得分:0)
使用Double.TryParse
将字符串转换为数字。
答案 2 :(得分:0)
将值转换为整数,计算答案并打印出来。例如,对于操作'+',它将是:
var ans = Convert.ToInt32(calculation[0]) + Convert.ToInt32(calculation[2]);
Console.WriteLine(ans);