如何在C#中加减?

时间:2017-06-09 16:22:09

标签: c# math

我是C#的新手,我正在尝试制作一个计算器。在Python(我更熟悉)中,您只需import math然后写出您想要用数学做什么。

但是使用C#,这是我的代码:

using system;


namespace Calculator
{
    class MainClass
    {
        public static void Main(string[] args)
        {
             divide(2,3);
        }
        public static void add(int num01, int num02)
        {
            Console.WriteLine("The result is " + num01+num02);
            Console.ReadKey();
        }
        public static void multiply(int num01, int num02)
        {
            Console.WriteLine("The result is " + num01 * num02);
            Console.ReadKey();
        }
        public static void divide(double num01, double num02)
        {
            Console.WriteLine("The result is " + num01 / num02);
            Console.ReadKey();
        }
        public static void subtract(int num01, int num02)
        {
            Console.WriteLine("The result is " + num01 - num02);
            Console.ReadKey();
        }
    }
}

如果我尝试添加,它首先给出23,并抛出语法错误(运算符' - '不能应用于'string'和'int'类型的操作数。)如果我尝试减去。

我只是这种语言的新手,所以我可能犯了一些愚蠢的错误。

4 个答案:

答案 0 :(得分:6)

这种混淆来自于+的两个角色之间的混淆:

  • 当在带有字符串的表达式中使用它时,它表示连接
  • 在具有数字类型的表达式中使用时,表示添加

您可以通过在表达式周围放置括号来解决此问题。

但是,更好的方法是使用字符串格式或string interpolation而不是连接,这样可以完全避免这个问题:

Console.WriteLine("The result is {0}", num01 - num02); // Formatting

Console.WriteLine($"The result is {num01 - num02}"); // Interpolation

答案 1 :(得分:4)

将您的最终计算转换为类似的字符串。

Console.WriteLine("The result is " + (num01 - num02).ToString());

或者只是用括号括起来

Console.WriteLine("The result is " + (num01 - num02));

答案 2 :(得分:0)

只需按()

对您的操作进行整理
namespace Calculator
{
    class MainClass
    {
        public static void Main(string[] args)
        {
             divide(2, 3);
        }
        public static void add(int num01, int num02)
        {
            Console.WriteLine("The result is " + (num01 + num02));
            Console.ReadKey();
        }
        public static void multiply(int num01, int num02)
        {
            Console.WriteLine("The result is " + (num01 * num02));
            Console.ReadKey();
        }
        public static void divide(double num01, double num02)
        {
            Console.WriteLine("The result is " + (num01 / num02));
            Console.ReadKey();
        }
        public static void subtract(int num01, int num02)
        {
            Console.WriteLine("The result is " + (num01 - num02));
            Console.ReadKey();
        }
    }
}

答案 3 :(得分:0)

在Java和C#等强类型语言中,操作顺序非常重要。像许多人已经回答的那样,你首先将字符串添加到第一个数字,然后尝试从字符串中减去。

这是您的代码正在做的事情:

1. "The result is " + num01 - num02
2. "The result is (value of num01)" - num02
3. Error when trying to subtract

将其改为此

Console.WriteLine("The result is " + (num01 - num02));

您的代码执行如下:

1. "The result is " + (num01 - num02)
2. "The result is " + (difference of num01 and num02)
3. "The result is (difference of num01 and num02)"

希望这有帮助