bc是一个linux命令行计算器,非常精通计算
3^2
9
即使是负指数也不会混淆它:
3^-2
0.11111
然而当它在通缉时失败
9^0.5
Runtime warning (func=(main), adr=8): non-zero scale in exponent
怎么可能bc无法处理这个?
错误信息的含义是什么?
是的,我读过 http://www.linuxquestions.org/questions/programming-9/bc-and-exponents-containing-decimals-and-fractions-755260/ 和解决方案
e(0.5*l(9))
2.99999999999999999998
在那里。
是的,由于精度损失和
,这是不好的计算器应该解决表达式。你不应该 让计算器的生活更轻松,它应该是另一个 方式...
此功能旨在鼓励用户编写自己的功能。使其成为一个独特的计算器,需要用户定义函数来计算平方根。
为切线或cotangents编写函数并不会让我感到困扰,因为在s(x)
和c(x)
看起来非常简单。但在我看来,通过用户定义的函数计算平方根有点太多了。
为什么有人使用bc,如果那里有python?速度ω
答案 0 :(得分:3)
bc是非常基本的,“数学扩展”不提供的更复杂的功能必须在语言本身中实现:它拥有你需要做的一切;特别是“权力”是一个常见的例子,甚至在wikipedia。
但是你可能也有兴趣在这里阅读this answer这里。
答案 1 :(得分:1)
在bc中,b必须是^ b中的整数。但是你可以像这样添加你自己的函数:
创建一个文件〜/ .bcrc,添加以下函数:
define pow(a, b) {
if (scale(b) == 0) {
return a ^ b;
}
return e(b*l(a));
}
然后你可以按如下方式启动bc:
bc -l <(cat ~/.bcrc)
所以你可以用函数pow来做这样的计算。
查看更多here,您可以为bc添加更多功能。