unix bc命令及操作顺序

unix bc command and order of operation

我在 mac 上使用基本 unix "bc" 命令时遇到了一个奇怪的问题,我只想确保我理解正确。在手册页上,它说它尊重操作顺序,我在学生时代记得它是 "My Dear Aunt Sally"(乘法、除法、加法、减法)

在 bc 中计算以下字符串时,我得到了一个意外的值

5/2+4+6-8*4+5*7+8
23

但是,如果我按照之前声明的操作顺序加上括号,我会得到不同的结果:

(((5/2)+(4+6))-((8*4)+((5*7)+8)))
-63

我对 bc 命令或数学有根本性的误解吗?

我们知道x-y+z不等于x-(y+z)。因此,您期望 5/2+4+6-8*4+5*7+8 等于 (((5/2)+(4+6))-((8*4) +((5*7)+8))).此外,您需要更多地研究除法中的运算符优先级和截断。例如,5/2 虽然等于 2.5,但被截断为 2。 因此,5/2+4+6-8*4+5*7+8 = 2+4+6-32+35+8 = 23。 希望,它有所帮助