Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/07/2012, à 13:48

jbbaudouin

[Résolu] zsh commande printf 4 chiffre après la virgule

Bonjour à tous,

je chercher à afficher un chiffre avec 4 chiffres après la virgule
grâce à la commande printf.

pour l'instant je cherche l'instruction du style : printf "%.4F" mais cela ne me renvoi pas
le valeur désirée.

Auriez-vous des suggestions?

Je vous remercie par avance pour réponses,

jbbaudouin

Dernière modification par jbbaudouin (Le 06/07/2012, à 15:59)

Hors ligne

#2 Le 06/07/2012, à 13:59

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

Ok je crois que je viens de trouvé, quelquechose du genre %5.4f.

Mais maintenant je bloque sur la concaténation de ces différentes variables en colonnes.
par exemple il me les affiche à suivre : v1, v2, v3...
et je les voudrais du genre : v1
                                             v2
                                             v3...

si vous avez des suggestions je suis preneur.
j'essaie avec cat mais pour l'instant ça coince


jbbaudouin

Hors ligne

#3 Le 06/07/2012, à 13:59

pingouinux

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

Bonjour,

$ printf "%7.4f\n" 5.2
 5.2000
$ printf "%7.4f\n" 5.2 3.8 2.7
 5.2000
 3.8000
 2.7000

Dernière modification par pingouinux (Le 06/07/2012, à 14:04)

Hors ligne

#4 Le 06/07/2012, à 14:08

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

merci pour ta réponse pingouinux
ok affichage en ligne grâce au \n.

est-ce que éventuellement tu serait comment ajouter la nouvelle colonne comme colonne supplémentaire
dans un fichier préexistant où il y a déjà des colonnes?

jbaudouin

Hors ligne

#5 Le 06/07/2012, à 14:13

pingouinux

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

$ printf "%7.4f\n" 5.2 3.8 2.7 >out
$ paste out <(printf "%7.4f\n" 15.2 13.8 12.7 )
 5.2000    15.2000
 3.8000    13.8000
 2.7000    12.7000

Hors ligne

#6 Le 06/07/2012, à 14:23

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

je pense que ça sera plus facile si je montre le prg en question:

#!/bin/zsh
c=3.4
b=1.0005
for (( i=1 ; i<=201 ; i=i+1))
do
c=$(($c*$b))
printf "%5.4f\n" c > test_concat.a0
paste test_concat.a0 < printf "%5.4f\n" c
done
exit

qui ne fonctionne d'ailleurs pas pour l'instant
jbbaudouin

Hors ligne

#7 Le 06/07/2012, à 14:48

pingouinux

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

Peux-tu montrer les premières lignes du fichier que tu souhaites obtenir. Je ne connais pas zsh.

Hors ligne

#8 Le 06/07/2012, à 15:07

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

OK voici les premières ligne de l'ancien fichier (nbr de colonne = 4) :
val1 val2 val2
val4 val5 val6
...

et voici le nouveau fichier que j'aimerai avoir :
newval1 val1 val2 val3
newval2 val4 val5 val6
..

donc je voudrais rajouter la colonne newval (commande

 printf "%5.4f\n" c

dans mon prg), dans le fichier ou il y a les colonnes val.

en espérant que cela soit clair.
jbbaudouin

Hors ligne

#9 Le 06/07/2012, à 15:22

pingouinux

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

jbbaudouin #8 a écrit :

en espérant que cela soit clair

Pas vraiment…

OK voici les premières ligne de l'ancien fichier (nbr de colonne = 4) :
val1 val2 val2

Je ne vois que 3 colonnes

Est-ce bien cela que tu veux faire ?

  • Tu pars d'un fichier qui comprend 3 colonnes et 201 lignes

  • Tu calcules 201 valeurs avec ton programme, et tu insères les valeurs obtenues devant la première colonne du fichier initial, qui en aura alors 4

Hors ligne

#10 Le 06/07/2012, à 15:24

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

oui c'est tout à fais cela

jbbaudouin

Hors ligne

#11 Le 06/07/2012, à 15:31

pingouinux

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

Voici un test, en bash, avec 11 lignes :

$ cat fic_init
col1A col2A col3A
col1B col2B col3B
col1C col2C col3C
col1D col2D col3D
col1E col2E col3E
col1F col2F col3F
col1G col2G col3G
col1H col2H col3H
col1I col2I col3I
col1J col2J col3J
col1K col2K col3K
$ cat x0.sh
#!/bin/bash

c=3.4
b=1.0005

paste <(
for (( i=1 ; i<=11 ; i=i+1))
do
c=$(bc -l <<<"$c*$b")
printf "%5.4f\n" $c
done) fic_init
$ ./x0.sh
3.4017    col1A col2A col3A
3.4034    col1B col2B col3B
3.4051    col1C col2C col3C
3.4068    col1D col2D col3D
3.4085    col1E col2E col3E
3.4102    col1F col2F col3F
3.4119    col1G col2G col3G
3.4136    col1H col2H col3H
3.4153    col1I col2I col3I
3.4170    col1J col2J col3J
3.4187    col1K col2K col3K

Hors ligne

#12 Le 06/07/2012, à 15:48

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

ok ça fonctionne, seulement que dans mon cas il me sort des nombres à virgules et pas à point lorsque
je calcul c, du coup ça bloque pour la suite.

jbbbaudouin

Hors ligne

#13 Le 06/07/2012, à 15:59

pingouinux

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

À quel niveau cela coince-t-il ? Est-ce dans bc, ou dans printf ?
Essaye ces 2 commandes :

bc -l <<<"2.5*1.1"
printf "%5.4f\n" 3.5

et envoie le résultat (avec les messages d'erreur éventuels).

Hors ligne

#14 Le 06/07/2012, à 15:59

jbbaudouin

Re : [Résolu] zsh commande printf 4 chiffre après la virgule

bon je vais passer cette discussion en résolu et en lancer une autre sur le changement virgule par point
lorsque l'on calcul en zsh des réels.
En tout merci encore Pingouinux pour ton prg,

jbbaudouin

Hors ligne

#15 Le 06/07/2012, à 17:28

nesthib

Re : [Résolu] zsh commande printf 4 chiffre après la virgule


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne