BODMAS或BOMDSA完全相同,因为乘法/除法和加法/减法处于同一优先级(事实上,它们应该更正确地写成B O DM AS,不管你喜欢在各个组中的任何顺序); 如相关维基百科页面所述:
当以这种方式编写时,这些助记符可能会产生误导,特别是如果用户不知道乘法和除法具有相同的优先级,加法和减法也是如此.
换句话说,你所缺少的是正常(包括时做数学"手动",并在任何理智的编程语言)的运营商正在通过实际分组类优先,在乘除法具有相同的优先级(以及总和减法).所以,你的"BODMAS规则"实际上实际上是:
()
**
* /
+ -
Run Code Online (Sandbox Code Playgroud)
(我**用作指数运算符 - 就像在Python中一样 - 因为Java没有提供一个;而且,()这里是分组符号,而不是运算符)
运算符在同一行上的优先级取决于它们在表达式中的顺序及其相关性(对于算术运算符,它是从左到右,尽管对于求幂没有很好地定义).
虽然对于实数上的数学,这并不是真的相关,除非谈到除法(加法和减法是关联的,如果你认为减法是"相反的加法"),在编程中它是双重要的,因为关于FP数和整数的数学是通常不联想.
此外,编程语言提供了更多的运算符,而不是关联/可交换的,具有不同的关联性和不太完善的优先级规则,因此它们以更精细的方式指定运算符优先级的规则是正常的.
例如,参见Java的运算符优先级和关联性表:它比简单的"BODMAS规则"更复杂,它不足以正确表达它(因为有很多类,每个类中有更多运算符,具有不同关联性的类,. ..).
| 归档时间: |
|
| 查看次数: |
4724 次 |
| 最近记录: |