[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