[Linux] Linux下使用bc进行计算公式

一、摘要

bc(Basic Calculate)是linux下的一个可以计算任意精度的基本程序,可以在linux终端下使用命令行进行任意精度的公式计算,支持基本数学运算法则、三角函数和平方、开方运算等一系列复杂的运算,语法与C语言类似。本文将介绍bc程序的基本使用方法。
文章第二部分介绍了在linux下如何在命令行(终端)下使用bc进行数学运算,例如:

sth@sth-pc:~$ echo "2+3" | bc
5

即计算得到公式2+3的结果。
文章第三部分是本文的一些参考链接。

二、基本用法

1. 基本数学运算

基本加减乘除运算:

(base) sth@sth-pc:~$ echo "1+2" | bc
3
(base) sth@sth-pc:~$ echo "2-1" | bc
1
(base) sth@sth-pc:~$ echo "1*2" | bc
2
(base) sth@sth-pc:~$ echo "2/1" | bc
2

命令解释:
echo命令将字符串1+2作为参数 传给程序bc,然后bc进行计算得到结果后显示输出,输出为3
或者可以不使用echo运算符,直接将需要计算的公式字符串作为参数传给程序bc,例如:

bc <<< "1+2"

输出为:

3

其他计算示例:

2. 小数点精度控制

bc 与C语言类似,默认除法进行正常整除操作。为了得到精确的结果,可以使用-l参数,进行代数运算,结果如下:

sth@sth-pc:~$ echo "3/2" | bc
1
sth@sth-pc:~$ echo "3/2" | bc -l
1.50000000000000000000

或者使用scale变量设置结果小数点后的位数,例如:

sth@sth-pc:~$ echo "scale=1;3/4" | bc
.7
sth@sth-pc:~$ echo "scale=2;3/4" | bc
.75

3. 三角函数、开方和幂次运算

bc在使用参数-l指定代数运算模式下也支持三角函数、开方、幂次等操作。
但是与matlab等语言不同的是,为了简化代码,bc中三角函数与数学上的函数名字有所不同,具体如下:

  • s(x) 计算 sin(x),以下x皆为弧度表示
  • c(x) 计算 cos(x)
  • a(x) 计算arctangent(x)
  • l(x) 计算ln(x)
  • e(x) 计算e的x次方,其中e为自然底数
  • x^y 计算x的y次方
  • sqrt(x) 计算根号下x

例如:
分别计算sin(1),cos(0),arctan(1.0):

sth@sth-pc:~$ echo "s(1)" | bc -l
.84147098480789650665
sth@sth-pc:~$ echo "c(0.0)" | bc -l
1.00000000000000000000
sth@sth-pc:~$ echo "a(1.0)" | bc -l
.78539816339744830961

分别计算ln(2),pow(e,1):

sth@sth-pc:~$ echo "l(2)" | bc -l
.69314718055994530941
sth@sth-pc:~$ echo "e(1)" | bc -l
2.71828182845904523536

分别计算pow(2,3),sqrt(9.0)

sth@sth-pc:~$ echo "2^3" | bc -l
8
sth@sth-pc:~$ echo "sqrt(9.0)" | bc -l
3.00000000000000000000

注意,进行三角函数、开方,幂次等代数运算时,一定要加上参数-l,表示进行代数运算,不然无法使用内置的三角函数、开方等函数。

4. 其他操作

bc的参数以及功能如下:

usage: bc [options] [file ...]
  -h  --help         print this usage and exit
  -i  --interactive  force interactive mode
  -l  --mathlib      use the predefined math routines
  -q  --quiet        don't print initial banner
  -s  --standard     non-standard bc constructs are errors
  -w  --warn         warn about non-standard bc constructs
  -v  --version      print version information and exit

读者可以自行探索,或者查看bc用户手册,或者在命令行输入

sth@sth-pc:~$ man bc

查看用户手册,按q退出手册查看。

三、参考

[1.] linux之bc命令使用详解_Linux命令bc使用详解
[2.] bc An arbitrary precision calculator language

posted on 2021-11-14 16:53  刘好念  阅读(54)  评论(0编辑  收藏  举报  来源