小心 calc 的陷阱!

我居然想当然的认为 calc 的运算符优先级和大多数语言一样,我真是太幼稚了 :joy:

org 表格都是使用 calc 语法,所以小心了,calc 的 * 是比 / 优先级更高的!因为是刚开始用 org 的 spreadsheet 功能,差点被坑了!

(2.0 + 3.0) / 2.0 * 5.0 / 10.0 = (2.0 + 3.0) / (2.0 * 5.0) / 10.0 = 0.05

在 python 里上式等于

(2.0 + 3.0) / 2.0 * 5.0 / 10.0 = 5.0 / 2.0 * 5.0 / 10.0 = 12.5

Calc 里面是先算乘法,再算除法,而不是从左到右依次计算!

3 个赞

这个 calc 的文档里有说明,建议玩一下 Emacs Calc,一列数求和求均值、最值没有比 Emacs Calc 更快的方法了,如果是整天和科学计算,数值计算打交道的,Emacs Calc 那就更是神器了

10位数之内的加法有时候都算不过来,老了。。。。

这以后都不敢用它了,不按常理出牌啊

GNU bc也很好用