使用分数指数与bc

Ant*_*ins 10 exponent sqrt bc

bc,一个linux命令行计算器,非常精通计算

3^2
9
Run Code Online (Sandbox Code Playgroud)

即使是负指数也不会混淆它:

3^-2
0.11111
Run Code Online (Sandbox Code Playgroud)

然而当它在它出现时失败了

9^0.5
Runtime warning (func=(main), adr=8): non-zero scale in exponent
Run Code Online (Sandbox Code Playgroud)

怎么可能是bc无法处理这个?

错误信息是什么意思?


是的,我已经阅读了 http://www.linuxquestions.org/questions/programming-9/bc-and-exponents-containing-decimals-and-fractions-755260/ 和解决方案

e(0.5*l(9))
2.99999999999999999998
Run Code Online (Sandbox Code Playgroud)

在那里.

是的,由于精确度的损失,它并不好

计算器应该解决表达式.你不应该让计算器的生活更轻松,它应该是另一种方式......


功能旨在鼓励用户编写自己的功能.使其成为一个独特的计算器,需要用户定义的函数来计算平方根.

它并没有真正困扰我写的切线或余切值的功能,因为它看起来非常简单给出s(x)c(x).但在我看来,通过用户定义的函数计算平方根有点太多了.

为什么有人使用bc,如果那里有python?速度?

ide*_*vin 10

在bc中,b必须是a^b中的整数。但是,您可以将自己的函数添加到 bc 中,如下所示:

创建文件~/.bcrc,添加以下函数:

define pow(a, b) {
    if (scale(b) == 0) {
        return a ^ b;
    }
    return e(b*l(a));
}
Run Code Online (Sandbox Code Playgroud)

然后你可以按如下方式启动 bc:

bc ~/.bcrc -l
Run Code Online (Sandbox Code Playgroud)

所以你可以使用函数pow来进行这样的计算。

更多内容请看这里,你可以给bc添加更多的功能。


Shi*_*zou 5

bc 是非常基本的,“数学扩展”未提供的更复杂的函数必须在语言本身中实现:它拥有您需要执行的所有功能;特别是“权力”甚至在维基百科上也是一个常见的例子。

但您可能也有兴趣阅读例如此答案

  • “它没有幂函数:它具有整数幂函数”没有意义。bc 中的每个其他函数都接受小数参数。为什么要对如此广泛使用的函数破例呢? (2认同)