shell的计算什么时候会有小数?什么时候是整数
1.首先来几个实验验证一下:从上面这个图中可以看到,在bc的交互命令模式下: 1.scale … |bc 方式可以指定保留小数位数[root@db22 ~]# echo "scale=2;1/5"|bc
.20
[root@db22 ~]# echo "scale=2;24/5"|bc
4.80
说明: echo命令的输出通过管道传送给bc程序。变量scale赋值为2,表示小数点后的有效位数为2。bc 来计算1除以5的值 2.awk的方式[root@db22 ~]# echo `awk -v x=1 -v y=5 'BEGIN{printf "%.2fn",x/y}'` 0.20
说明:通过命令行传递参数列表,gawk从该列表中获取参数值:x=2.45,y=3.123。乘法运算完成后,printf函数格式化并显示运算结果,保留小数点后两位数,并将输出赋给变量product。 2.1 printf的格式化输出上面代码中的%.2f 被称为格式符(format specifier)。格式符由以下几部分组成: %[flags][width][.precision]conversion
% - 5 .2 f
awk 支持如下转换符(conversion)。
awk 支持如下标志(flag)
awk 精度(precision)的意义
sprintf 函数如果你不想打印,而是想格式化一个字符串,然后把它保存到一个变量中,该怎么办呢?试一试 sprintf 函数吧。 #! /usr/bin/awk -f
BEGIN {
str=sprintf("%5.2f",33.698);
print str;
};
{};
END {};
利用已经习得的命令来解决我们在一开始提出的4个问题 四舍五入的这个可以在结果上+0.5来达到。 参考文档:shell脚本中小数的计算 Linux学习4之shell脚本中的小数运算 awk格式化输出 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |