linux shell bc命令 处理浮点数
一般的整数运算可以用 expr这个命令解决,expr命令一般用于整数值,但也可用于字符串。一般格式为:expr argument operator argumentexpr也是一个手工命令行计数器。$expr 10 + 1020$expr 1500 + 9002500$expr 30 / 310$expr 30 / 3 / 25(注意运算符左右都有空格
一般的整数运算可以用 expr这个命令解决,expr命令一般用于整数值,但也可用于字符串。一般格式为:
expr argument operator argument
expr也是一个手工命令行计数器。
$expr 10 + 10
20
$expr 1500 + 900
2500
$expr 30 / 3
10
$expr 30 / 3 / 2
5
(注意运算符左右都有空格 ,如果没有空格表示是字符串连接)
使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。
$expr 30 * 3
90
但是shell不能处理浮点数——悲剧啊!!也就是说 while [ 0.1 -le 1] 它会报错的, 它不知道0.1是啥
这个时候要解决两个问题:
1, 如何计算 0.1 + 0.1,
用bc命令啦, 呵呵
这里有一个简单的使用 bc 命令的模版可以用来在计算脚本中的变量. 用在命令替换 中.
variable=$(echo "OPTIONS; OPERATIONS" | bc)
如:interest_rate=$(echo "scale=9; $interest_r/12 + 1.0" | bc)
也就是说 i=$(echo "0.1 + 0.1"|bc)
i的值就是0.2了哦
2, C语言下的
while(i<1) {
i = i +0.1
}用 shell 怎么实现呢?,就是想得出连续的0-1之间的值
以下是我的实现方法:
i=0;
j=0
while [ i -l 10 ]
do
j =$(echo "$j + 0.1" |bc)
echo $j
done
转载:http://blog.163.com/redhumor@126/blog/static/195547842012222802942/
更多推荐
所有评论(0)