C#中的基本数学运算

时间:2016-08-19 21:50:07

标签: c#

我正在学习,并在C#中浏览过简单的数学运算。然而,如果第一个小于第二个整数,通常我知道将整数乘以另一个整数的零是一个简单易懂的点。所以,我看过operator precedence in C#,因为我可能有错误的信息。那么,Console.WriteLine((1 + 1) / 2 * 3);那么它不应该给出零结果呢?但它给出了3。是否有一点我对C#有错误的知识?

@Edit:问题出在我的算术上。我认为它应该是2/2 * 3然后2/6 = 0为什么在乘法之前进行除法?

@Edit 2:可以关闭此问题。这正是我对运算符优先级的错误认识。到目前为止,我一直认为这是编程中真正的数学过程。我震惊了。 一次又一次地阅读的优点,即使你认为我已经知道主题,也不会跳过

@Edit 3:过了一段时间,我意识到有一些数学表达式的评估称为PEMDAS, BODMAS, BEDMAS and BIDMAS。这就是为什么我一开始就弄错了。

3 个答案:

答案 0 :(得分:4)

答案是3 .. 1 + 1 = 2/2 = 1 * 3 = 3 .....操作顺序告诉我们这个

答案 1 :(得分:2)

您应该使用操作顺序。 order of operations 当你看一下,你可以看到你需要做的第一件事是在括号之间添加两个。然后将其除以2.但是1 + 1是因此第二个数字不大于第一个数字。那你只需要乘以三。

所以( 1 + 1 )/ 2 * 3

然后 2/2 * 3

最后 1 * 3

你可以看到乘法和除法从左到右执行。在除法之前不执行乘法。

答案 2 :(得分:0)

为了消除混淆,即使没有必要,也可以使用括号。这有助于下一个阅读代码的人。

Ex:a =((1 + 1)/ 2)* 3.如果您希望答案为0,则a =(1 + 1)/(2 * 3)。这使得代码更易于阅读,并有助于消除在复杂操作中很难找到的简单数学错误。