lottu

   下午朋友对我说“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;也可以达到效果!


 

 



分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-10-08
  • 2022-12-23
  • 2021-09-22
  • 2021-12-15
  • 2021-09-24
  • 2022-01-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-12-28
  • 2021-12-16
  • 2021-12-13
相关资源
相似解决方案