Salut tout le monde!
comment peut-on afficher le resultat d'une operation arithmetique avec une virgule?la commande expr affiche seulement la partie entiere de l'operation et n'affiche pas la partie decimale.
merci pour vous et cordialement!
![]()
Salut tout le monde!
comment peut-on afficher le resultat d'une operation arithmetique avec une virgule?la commande expr affiche seulement la partie entiere de l'operation et n'affiche pas la partie decimale.
merci pour vous et cordialement!
![]()
Salut.
Bash ne gère pas comme ça les virgules flottantes, voici l'astuce :
Pour seulement afficher uniquement le résultat d'une opération :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 variable=$(echo "0.1" | bc) # pour affecter une valeur à virgule flottante variable=$(echo "$variable*2" | bc -l) # pour affecter le résultat d'un calcule avec des virgules flottantes
man bc pour en savoir plus ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "0.1*2" | bc -l
Pour être exact, bash ne gère pas les nombres à virgule (l'astuce d'Idriss n'y fera rien); mais il faut effectivement, comme il le dit, faire appel à un programme externe :
Code Bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 var=0.1 bc <<<"$var*2" .2 # l'astuce d'Idriss var=$(echo "0.1" | bc) echo "$var*2" | bc -l .2 # mais bash ne gère pas les nombres à virgule [ $var -gt 0 ] && echo "peu importe" bash: [: .1: integer expression expected # il faut faire appel à un programme externe [ $(bc <<<"$var > 0") ] && echo "$var > 0" .1 > 0
Merci les amis pour vos réponses!
pour l'astuce d'Idriss,ca marche tres bien et ca repond à mon besoin actuel
Mais désolé N_BaH je ne comprends pas très bien comment ca fonctionne la premiere commande de "&&" et ca sert a tester quoi exactement?
Pardon, mais j'ai besoin de plus d'éclaircissements
Merci une autre fois!![]()
L'astuce d'Idriss n'en est pas vraiment une : elle ne fera pas en sorte que bash puisse évaluer des nombres à virgule.
Elle montre simplement comment les manipuler.
Envoyé par vamos
C'est plus clair ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [ $(bc <<<"$var > 0") ] && echo "$var > 0" # est équivalent à test $(echo "$var > 0" | bc) && echo "$var est supérieur à 0" # ou encore, de façon un peu redondante #if [ $(echo "$var > 0" | bc) ] if test $(echo "$var > 0" | bc) then echo "$var est supérieur à 0" fi
Partager