Comparaison de 2 réels en csh
Résolu
bdssssss
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
bdssssss Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
bdssssss Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travaille en csh. J'ai une condition en si qui cherche à comparer 2 variables, définies en début de script :
set AAA= 'echo "" | awk '{res = b + (a - b) / 2 ; printf("%0.2f",res)}' a=$var1 b=$var2 '
set BBB = 'echo "" | awk '{res = a + b ; printf("%0.2f",res)}' a=$var3 b=$var4'
if ($AAA <= $BBB) then
print "OK"
else
print "PAS OK"
endif
Quand j'exécute mon script, il plante et je peux lire le message d'erreur suivant :
if: Badly formed number.
En revanche, quand je fais afficher les variables AAA et BBB à l'écran (echo $AAA $BBB), les réels s'affichent correctement.
Quelqu'un aurait-il une idée pour solutionner mon problème?
Merci beaucoup par avance...
Je travaille en csh. J'ai une condition en si qui cherche à comparer 2 variables, définies en début de script :
set AAA= 'echo "" | awk '{res = b + (a - b) / 2 ; printf("%0.2f",res)}' a=$var1 b=$var2 '
set BBB = 'echo "" | awk '{res = a + b ; printf("%0.2f",res)}' a=$var3 b=$var4'
if ($AAA <= $BBB) then
print "OK"
else
print "PAS OK"
endif
Quand j'exécute mon script, il plante et je peux lire le message d'erreur suivant :
if: Badly formed number.
En revanche, quand je fais afficher les variables AAA et BBB à l'écran (echo $AAA $BBB), les réels s'affichent correctement.
Quelqu'un aurait-il une idée pour solutionner mon problème?
Merci beaucoup par avance...
A voir également:
- Comparaison de 2 réels en csh
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- Faire 2 colonnes sur word - Guide
- Whatsapp 2 - Guide
3 réponses
salut,
après deux/trois recherches, il semble que csh ne gère pas non plus les rééls :(
solution:
piper l'équation vers bc
si le résultat est 1, c'est ok
si le résultat est 0, c'est pas bon
:)
après deux/trois recherches, il semble que csh ne gère pas non plus les rééls :(
solution:
piper l'équation vers bc
si le résultat est 1, c'est ok
si le résultat est 0, c'est pas bon
:)
hello
et tout faire dans awk:
et tout faire dans awk:
echo $var1 $var2 $var3 $var4 | awk '{if(($2+($1-$2)/2) <= ($3+$4)) print "OK" ; else print "PAS OK"}'ou si il faut garder AAA et BBB
AAA='echo $var1 $var2 | awk '{ printf("%0.2f", $2+($1-$2)/2)}'' BBB='echo $var3 $var4 | awk '{ printf("%0.2f", $1+$2)}'' echo $AAA $BBB | awk '{if($1 <= $2)print "OK" ; else print "PAS OK"}'
Salut!
Merci pour vos réponses.
Finalement, hier soir, j'ai utilisé bc, et ça marche plutôt bien :
set AAA= 'echo "" | awk '{res = b + (a - b) / 2 ; printf("%0.2f",res)}' a=$var1 b=$var2 '
set BBB = 'echo "" | awk '{res = a + b ; printf("%0.2f",res)}' a=$var3 b=$var4'
set compar = 'echo "$AAA <= $BBB" | bc'
if ($compar == 1) then
print "OK"
else
print "PAS OK"
endif
C'est peut-être pas optimisé, mais ça fait ce que je veux! Merci en tout cas... Bonne journée!
Merci pour vos réponses.
Finalement, hier soir, j'ai utilisé bc, et ça marche plutôt bien :
set AAA= 'echo "" | awk '{res = b + (a - b) / 2 ; printf("%0.2f",res)}' a=$var1 b=$var2 '
set BBB = 'echo "" | awk '{res = a + b ; printf("%0.2f",res)}' a=$var3 b=$var4'
set compar = 'echo "$AAA <= $BBB" | bc'
if ($compar == 1) then
print "OK"
else
print "PAS OK"
endif
C'est peut-être pas optimisé, mais ça fait ce que je veux! Merci en tout cas... Bonne journée!