AWK中怎样四舍五入取数字小数点后两位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWK中怎样四舍五入取数字小数点后两位相关的知识,希望对你有一定的参考价值。

参考技术A 你是这个意思吗?

y:root:/tmp> ./xxx
1.33248->1.33
88.7364->88.74

y:root:/tmp> cat xxx
#!/bin/bash

awk 'BEGIN
a=1.33248
b=88.73641
a2d=sprintf("%.2f", a)
b2d=sprintf("%.2f", b)
print a "->" a2d
print b "->" b2d
'

怎样用java实现小数的四舍五入?

编程上四舍五入一般都是通过加一个小数看是否自动进1来完成的。
打个比方12.563,要求保留两个小数,四舍五入,则可以这样做:
第一步:12.563+0.005=12.568
第二步:12.568*100=1256.8
第三步:对1256.8强制转换为int类型(int)(1256.8)=1256
第四步:得出结果(double)(1256)/100=12.56
结果就是12.563保留两个小数并四舍五入的结果为12.56
不同的变成语言也行写法上不一样,但总体的理论是一样的。
参考技术A Math的方法主要取整的,
要取多位小数位数的话,比如取小数点以后第二位的话,小数点以后第二位四舍五入!思路:将需要四舍五入的值传入方法,先找出小数点的位置indexof(“.”),取出小数点后一位来判断是否是>5的,是TRUE的话,再做相应处理!以下是取整为例,其他多位小数的话,以此类推!
完整代码如下:在Main函数中测试
Scanner input=new Scanner(System.in);
System.out.println("请输入一个小数");
Double d=input.nextDouble();
String num=d.toString();
int a=Integer.parseInt(num.substring(num.indexOf(".")+1,num.indexOf(".")+2));//获取小数点后的第一位
if(a>=5)//判断是否满足条件

a=Integer.parseInt(num.substring(0,num.indexOf(".")))+1;//整数部分+1

else

a=Integer.parseInt(num.substring(0,num.indexOf(".")));

System.out.println("小数"+d+"四舍五入后的结果是:"+a);
参考技术B 我喜欢用 一个小数加上0.5,这样改五入的就进位了,该四舍的就没进位。
然后用一个Math.floor(a)就可以了
a是加过0.5厚的小数本回答被提问者和网友采纳
参考技术C double d = 3.1465926;
String result = String.format("%.2f", d);
System.out.println(result);

以上是关于AWK中怎样四舍五入取数字小数点后两位的主要内容,如果未能解决你的问题,请参考以下文章

怎么把Excel小数点后面的数字精确到两位数!!!

怎样保留小数点后六位,六位以后不四舍五入?

如何将数值四舍五入后保留两位小数点

vb中取值(小数点后2位)的函数是啥?

excel怎么把小数点后保留两位怎么操作?

EXCEL怎么让小数后两位显示0