2 votes

Comment conserver les nombres décimaux originaux sans les arrondir ?

J'essaie de calculer la somme des distances parcourues et elle est parfaitement calculée dans le fichier texte. Cependant, les résultats doivent être arrondis à 4 décimales.

Par exemple, lorsque j'ai essayé d'additionner 10.1361234 et 10.1461621 mètres à partir du journal des distances, au lieu d'afficher le résultat original de 20.2822855, le résultat sera arrondi comme indiqué ci-dessous.

distance totale.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

Cependant, je voulais conserver les valeurs décimales originales sans arrondir. Existe-t-il un moyen de le faire ? Voici mon code en pièce jointe

#!/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"

Merci !

4voto

αғsнιη Points 33236

Si vous regardez dans le awk la page de manuel, la valeur par défaut awk OFMT es %.6g (6 spécifie le nombre de chiffres significatifs) ; vous pouvez changer pour dire .6f pour spécifier le nombre de chiffres après la décimale, ou %f sans limite. donc :

<infile >>outfile awk '{ SUM+=$5 }
END{ OFMT="%.6f"; print date_time, "Total distance:", SUM, distance }' \
     date_time="$(date +'%F %T')" distance="meters"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X