如何保留原始小数而不进行四舍五入

如何保留原始小数而不进行四舍五入

我正在尝试计算行程距离的总和,文本文件中的计算结果非常完美。但是,结果将四舍五入到小数点后 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"

相关内容