切り捨てずに元の小数点数を維持する方法

切り捨てずに元の小数点数を維持する方法

移動距離の合計を計算しようとしていますが、テキストファイルでは完璧に計算されています。ただし、結果は小数点以下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

見てみるとawkmanページ、デフォルト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"

関連情報