Как сохранить исходные десятичные числа без округления

Я пытаюсь вычислить сумму пройденного расстояния, и оно идеально вычисляется в тексте файл. Однако результаты будут округлены до 4 знаков после запятой

. Например, всякий раз, когда я пытался сложить 10,1361234 и 10,1461621 метра из журнала расстояний, вместо того, чтобы показывать исходный результат 20,2822855, результат будет округлен, как показано ниже

totaldistance.txt

2021-04-09 13:44:26 Total distance: 20.2823 meters

DistanceLog.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"

Спасибо!

2
задан 9 April 2021 в 10:17

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"
4
ответ дан 23 April 2021 в 23:24

Другие вопросы по тегам:

Похожие вопросы: