Gawk, division, décimales
Fermé
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
-
11 févr. 2013 à 10:03
dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 12 févr. 2013 à 08:26
dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 12 févr. 2013 à 08:26
A voir également:
- Gawk, division, décimales
- Microsoft skype division - Télécharger - Téléphonie & Visio
- Excel division avec virgule - Forum Excel
- Publipostage montant avec 2 décimales - Forum Word
- Division en c - Forum C
- Excel nombre aléatoire entre deux valeurs décimales ✓ - Forum Excel
7 réponses
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
11 févr. 2013 à 12:09
11 févr. 2013 à 12:09
hello
gawk en ligne de commande est la galère en DOS.
utiliser un fichier
gawk en ligne de commande est la galère en DOS.
utiliser un fichier
gawk -f xxet dans xx
{printf "%2.7f" $1/365}
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
11 févr. 2013 à 12:28
11 févr. 2013 à 12:28
merci dubcek!
Mais je bute encore
il ne donne en plus que deux décimales, en dehors du plantage :(
Mais je bute encore
C:\Users\g\Desktop\Recent>ECHO 734801 | gawk -f x.txt gawk: x.txt:1: (FILENAME=- FNR=1) fatal: not enough arguments to satisfy format string '%2.7f2013.15' ^ ran out for this one
il ne donne en plus que deux décimales, en dehors du plantage :(
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
Modifié par eZula le 11/02/2013 à 13:06
Modifié par eZula le 11/02/2013 à 13:06
ça y est j'ai trouvé en creusant par ici http://forum.ubuntu-fr.org/viewtopic.php?id=422229
et x.txt :
ce qui donne 2013.15342465753430000000
Ceci dit et pour avoir de la marge, j'ai mis 20 décimales (%.20f\n). Mais peut être y a-t-il moyen plus général et plus précis de lui indiquer d'écrire autant de décimales qu'il y en a, dans cet exemple 13 (ce qui répondrait à 100% à ma question :) )?
ECHO %NbJrDifference%|gawk -f "x.txt"
et x.txt :
{printf "%.20f\n", $1/365}
ce qui donne 2013.15342465753430000000
Ceci dit et pour avoir de la marge, j'ai mis 20 décimales (%.20f\n). Mais peut être y a-t-il moyen plus général et plus précis de lui indiquer d'écrire autant de décimales qu'il y en a, dans cet exemple 13 (ce qui répondrait à 100% à ma question :) )?
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
11 févr. 2013 à 14:26
11 févr. 2013 à 14:26
effectivement, il manquait une virgule pour l'argument du printf.
voir la doc printf, c'est le printf du C
http://www.linux-france.org/article/man-fr/man3/printf-3.html
voir la doc printf, c'est le printf du C
http://www.linux-france.org/article/man-fr/man3/printf-3.html
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
11 févr. 2013 à 15:14
11 févr. 2013 à 15:14
utiliser ce code pour supprimer les zéros en fin de chaine
{s=sprintf("%.20f\n", $1/365); sub("0*$", "", s); printf s}
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
11 févr. 2013 à 19:26
11 févr. 2013 à 19:26
ah, le résultat de la dernière commande ne semble pas éliminer les zéros, sauf erreur de ma part :
J'ai pensé à cette parade gourmande sinon :
Mais si elle peut se faire directement avec gawk ce n'est pas plus mal. Je pensais qu'il existait une expression pour matérialiser le nombre max de décimales mais c'est compliqué à trouver, si tenté que cela existe :)
C:\Users\g\Desktop\Recent>ECHO 734801 | gawk -f "x.txt" 2013.15342465753430000000
J'ai pensé à cette parade gourmande sinon :
C:\Users\g\Desktop\Recent>ECHO 734801 | gawk -f "x.txt" | SED "s/0*$//" 2013.1534246575343
Mais si elle peut se faire directement avec gawk ce n'est pas plus mal. Je pensais qu'il existait une expression pour matérialiser le nombre max de décimales mais c'est compliqué à trouver, si tenté que cela existe :)
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
12 févr. 2013 à 08:26
12 févr. 2013 à 08:26
on peut changer le nombre de décimales mais pas le rendre variable en fonction du résultat.
chez moi, il enlève bien les 0 finaux, même expression que le sed
chez moi, il enlève bien les 0 finaux, même expression que le sed