【发布时间】:2013-04-16 09:45:25
【问题描述】:
bc,Linux命令行计算器,精通计算
3^2
9
即使是负指数也不会混淆它:
3^-2
0.11111
然而遇到却失败了
9^0.5
Runtime warning (func=(main), adr=8): non-zero scale in exponent
bc怎么可能处理不了?
错误信息是什么意思?
是的,我已经阅读了this 以及那里给出的解决方案:
e(0.5*l(9))
2.99999999999999999998
是的,这是不好的,因为精度损失和
计算器应该解决表达式。你不应该 让计算器的生活更轻松,它应该是另一个 一路走来……
此功能旨在鼓励用户编写自己的函数。使其成为一个独特的计算器,需要用户定义的函数来计算平方根。
为切线或余切函数编写函数并不困扰我,因为考虑到s(x) 和c(x),它看起来非常简单。但在我看来,通过用户定义的函数计算平方根有点过分了。
如果有 Python,为什么有人使用 bc?速度?
【问题讨论】:
-
expr ^ expr 的第二个参数必须是整数(scale=0)。但是 0.5 的 scale = 1。
-
注意
bc已经有一个原生的平方根函数:scale=5; sqrt(9) -
如果你没有绑定到 bc,你可以使用Genius 作为替代。它支持开箱即用的有理指数:
genius --exec='81^0.75' -
“因为精度损失不好”,是的,如果你说:scale=3;并运行 e(0.5*l(9)) 你得到:2.97 甚至更糟......我预计最后会发生舍入,但这是错误的。