반올림하지 않고 원래 십진수를 유지하는 방법

반올림하지 않고 원래 십진수를 유지하는 방법

이동 거리의 합을 계산하려고 하는데 텍스트 파일에 완벽하게 계산되어 있습니다. 단, 결과는 소수점 이하 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

을 살펴보면매뉴얼 페이지, 기본값 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"

관련 정보