Probleme de conversion exponentielle en Float

Bu1979 -  
 Bu1979 -
Bonjour,

J'ai un ptit souci pour afficher un chiffre calcule avec un script Unix :

cat "$Fichier" | sed '1,1d' | awk -F',' '{print $3-$4";"$5";"$6";"$7}' | sed '/;0/d' | sed '/;-0/d' > $OUT_FILE_INS

$3-$4 me donne un chiffre scientifique (avec exponentielle) or j'aimerai garder un Float avec 2 chiffres apres la virgule par exemple.

J'ai trouvai des options avec Printf: printf %2.f, mais j'ai limpression que la commande le comprend comme un caractere et non pas comme une option de conversion. (grosso modo elle affiche "%2.f" au lieu de convertir le resultat)

Quelle serait la commande exacte pour ce probleme?

Merci pour vos reponses.
A voir également:

6 réponses

dubcek Messages postés 19025 Date d'inscription   Statut Contributeur Dernière intervention   5 640
 
et avec printf %.2f ?
0
Bu1979
 
Bonjour,
En effet je me suis trompe dans le message, jutilise bien %.2f, mais ca ne marche pas
0
dubcek Messages postés 19025 Date d'inscription   Statut Contributeur Dernière intervention   5 640
 
on peut voir le contenu du fichier et le format des nombres ?
utiliser sprintf pour convertir de e en f ?
0
Bu1979
 
Bien sur:

une ligne de mon fichier $Fichier: 20070919,100500,2706000.00,5753267.98,AUD,20070920,,IMPORT

Les valeurs $3 et $4, je les soustrait, et redirige le resultat vers un fichier $OUT_FILE_INS

resultat qu'il devrait me donner: -3047267.98,AUD,20070920,
or il me donne qq chose comme: -3.04e7,AUD,20070920,

Voila pour les renseignements
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 19025 Date d'inscription   Statut Contributeur Dernière intervention   5 640
 
et comme ça: awk -F',' '{printf("%.2f;%s;%s;%s\n", $3-$4, $5, $6, $7)}
0
Bu1979
 
Ah ouai, j'avais pense a cette formule, mais elle etait incomplete dans mon cas :-). Je l'essaierai demain, merci pour ton aide, je te reviens sur le sujet pour te dire si cela a marche.

++
0