AWK--Round函数

   下午朋友对我说“awk中怎么计算某列的值为四舍五入”;我们知道awk中是没有round函数;那样怎么样达到四舍五入的效果呢?我当时就想就写一个自定义函数吧!正好练习下最近学习的awk语言!

 

function round(a){
 b= int(a);
 c=a* 10;
 d=b* 10+ 5;
  if (c>=d)
 {
  e=b+ 1;
 }
  else{
 e=b; 
 }
  return e;
}

 

   测验这个函数;round.awk

 

function round(a){
 b= int(a);
 c=a* 10;
 d=b* 10+ 5;
 e=(c>=d)?(b+ 1):b;
  return e;
}
{
  print round( 3.25),round( 3.5),round( 4.6),round( 5.1);
}

 

预期结果应该是3,4,5,5

运行的代码是 echo aebcd | awk -f round.awk

测试结果是  3,4,5,5

  后来查看资料还可以这样实现;利用printf函数
  例如:echo adf | awk '{printf("%0.f\n",3.25)}'  结果也是3;也可以达到效果!


 

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值