1 简介
bc为linux下一个计算器程序,主要特点是可以进行任意精度的计算,我开始学习的时候也是觉得很神奇,毕竟能进行任意精度计算的程序不多见。
2 使用
bc命令在各linux下基本都可以正常使用,下面主要在wsl中进行使用,打开wsl界面后输入bc即可正常使用。
3 基本运算
3.1 简单的四则运算
基本的(±*/^),还支持基本().
1+2
3*4
5+3*2+1
2*(4+3)
2^10
最能体现bc命令强大的地方在于bc命令计算可支持很大的数,而不像其他语言那样转为浮点数会有精度损失.如
2^100
2^1000
2^10000
2^1000+123^100
上面例子均能得到精确结果.
3.2 带有小数的运算
上面的例子主要是整数部分,下面主要讲解小数部分,同样小数也支持任意精度,即你可以输入任意精度的小数,如
1.2
1.23
1.234567891011444444
1+1.234567891011444444
1.234567891011444444-0.5689
在进行±运算时没有精度损失,但是在进行*./运算时会有精度损失,具体如下
1.1*1.1
//=1.2
1.1*1.11
//=1.22
//即乘法结果是按最大小数位进行舍入的,即后面位数的内容全部去掉
10/3
//=3
10/3.1
//3
//除法不一样,除法只保留整数部分的结果
3.3 使用scale变量控制小数精度
scale是bc中一个变量,控制小数位数的精度,你可以直接输入scale,默认值为0,可以设置该变量的值从而控制运算的精度.如
scale=10
//设置精度为10
//下面对上面例子重新运算
1.1*1.1
//=1.21
1.1*1.11
//=1.221
//可以看出,结果未进行舍入,结果为精确值
//但是若运算结果超过scale定义的位数,结果任会舍入,如
1.23456789*1.23456789
10/3
//=3.3333333333
10/3.1
//3.2154340836
//除法则按scale进行舍入
3.4 其他
除了基本的四则运算,bc命令行还支持sqrt平方根计算,同样受scale精度控制
sqrt(2)
//=1.4142135623
乘方运算中底可支持小数,但是幂中只支持整数
1.2^2
2^0.5
//无法计算,会报错
//Runtime warning (func=(main), adr=9): non-zero scale in exponent
%用于计算余数,但是要在scale=0的情况下才能使用,如
scale=0
10%3
//=1
\符号用于分段输入数字,如
1.2\
122
\\等价于
1.2122
4 退出
使用quit命令进行退出
quit
520

被折叠的 条评论
为什么被折叠?



