使用分数指数与bc

时间:2013-04-23 08:49:07

标签: exponent sqrt bc

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?速度ω

2 个答案:

答案 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添加更多功能。