我正在尝试计算行程距离的总和,文本文件中的计算结果非常完美。但是,结果将四舍五入到小数点后 4 位
例如,每当我尝试将距离日志中的 10.1361234 米和 10.1461621 米相加时,结果不会显示原始结果 20.2822855,而是四舍五入,如下所示
总距离.txt
2021-04-09 13:44:26 Total distance: 20.2823 meters
距离日志.txt
2021-04-09 12:31:55 Distance travelled: 10.1361234 meters
2021-04-09 12:31:55 Distance travelled: 10.1461621 meters
但是我想保留原始小数,不进行四舍五入。有什么办法吗?下面附上我的代码
#!/bin/bash
SUM=0;
<DistanceLog.txt >> totaldistance.txt awk '{ SUM+=$6 } END{ print date_time,echo"Total distance:", SUM,distance }' date_time="$(date +'%F %T')" distance="meters"
谢谢你!
答案1
如果你看看awk手册页,默认awk OFMT
为%.6g
(6 指定有效数字的位数);您可以将其更改.6f
为指定小数点后的位数,或者%f
没有限制。所以:
<infile >>outfile awk '{ SUM+=$5 }
END{ OFMT="%.6f"; print date_time, "Total distance:", SUM, distance }' \
date_time="$(date +'%F %T')" distance="meters"