如何保留原始小數而不四捨五入

如何保留原始小數而不四捨五入

我正在嘗試計算行進距離的總和,並且它在文字檔案中計算得很好。但結果將四捨五入至小數點後 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"

相關內容