c#console calculator将数字输出到ascii

时间:2016-10-11 11:45:19

标签: c# console ascii console-application calculator

因此,作为测试自己的一件事,我正在考虑创建一个计算器;我知道它继续将我的数字改为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,只有一位数的计算。

3 个答案:

答案 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);