linux / shell 整数、浮点数进行 加减乘除

linux / shell 进行加减乘除

1、awk 结合 printf 的通用性最强,可计算整数和浮点数
2、bc也可计算整数和浮点数,但多用于计算浮点数
3、expr 只能计算整数,常用于计算整数
4(()) 除了计算整数,还能比较整数,常用于if 条件句

一、两者都是整数

num1=3
num2=5

########## 加法 ##########

expr $num1 + $num2   
awk 'BEGIN{printf "%d\n",('$num1' + '$num2')}'  
echo "$num1 + $num2" | bc   
((res=$num1 + $num2)) && echo $res 
# 自增长
let "res++"  && echo $res    

结果

8
8
8
8
9

########## 减法 ##########

expr $num1 - $num2  
awk 'BEGIN{printf "%d\n",('$num1' - '$num2')}' 
echo "$num1 - $num2" | bc   
((res=$num1 - $num2)) && echo $res  
# 自减少
let "res--"  && echo $res   

结果

-2
-2
-2
-2
-3

########## 乘法 ##########

expr $num1 \* $num2
awk 'BEGIN{printf "%d\n",('$num1' * '$num2')}'
echo "$num1 * $num2" | bc
((res=$num1 * $num2)) && echo $res

结果

15
15
15
15

########## 除法 ##########
向下取整

expr $num1 / $num2
awk 'BEGIN{printf "%d\n",('$num1' / '$num2')}'
echo "$num1 / $num2" | bc
((res=$num1 / $num2)) && echo $res

结果

0
0
0
null(为空)

二、至少有一个是浮点数(小数)

num1=7.8
num2=3.5
########## 加法 ##########

# scale=2,代表保留两位小数
echo "scale=2;$num1 + $num2" | bc
awk 'BEGIN{printf "%.1f\n",('$num1' + '$num2')}'

结果

11.3
11.3

########## 减法 ##########

echo "scale=2;$num1 - $num2" | bc
awk 'BEGIN{printf "%.1f\n",('$num1' - '$num2')}'

结果

4.3
4.3

########## 乘法 ##########

echo "scale=2;$num1 * $num2" | bc
awk 'BEGIN{printf "%.1f\n",('$num1' * '$num2')}'

结果

27.30
27.3

########## 除法 ##########

echo "scale=2;$num1 / $num2" | bc
awk 'BEGIN{printf "%.1f%%\n",('$num1'/'$num2')*100}'

结果

44.9%
222.9%
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值