Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mauvais calcul

4 réponses
Avatar
gerard.pineau1
Bonjour,

je suis sous aix , en ksh et je n'arrive pas =E0 faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var=3D15.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi
0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi
1

vrai !!
il y a peut-=EAtre une variable system ??

4 réponses

Avatar
ALain Montfranc
a écrit
Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi
0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi
1

vrai !!
il y a peut-être une variable system ??


AMHA ca ne marche qu'avec des entiers...

Avatar
Kartochka
essaie ça pour voire :

var.5

if [[ "(($var-100))" > "0" ]]
then
echo 0
else
echo 1
fi
Avatar
Stephane Chazelas
2007-03-6, 01:00(-08), :
Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi
0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi
1

vrai !!
il y a peut-être une variable system ??


D'abord, c'est

[ "$var" -gt 100 ]

[[ $var -gt 100 ]]

ou (( var > 100 ))

et seuls zsh et ksh93 supportent les floats.

Un shell n'est pas un outil pour faire de l'arithmetique.

--
Stéphane

Avatar
David
Le Tue, 06 Mar 2007 01:00:34 -0800, a écrit :

Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi 0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi 1

vrai !!
il y a peut-être une variable system ??



Si tu as bc sur ton aix et c'est récupérable sur le net sinon :

if echo "($var > 100)" | bc -q > /dev/null 2>&1
then echo ok
else echo ko
fi

le shell ne gère par les nombres a virgule.
Donc soit tu t'en sors en supprimant la virgule (ie tu multiplies tout par
100) soit tu fait autrement.
Enfin, > se traduit par -gt avec test