Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/01/2010, 13h02   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 79
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : juillet 2009
Messages : 79
Points : 11
Points : 11
Par défaut afficher la partie decimale d'une operation arithmetique

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!
vamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2010, 13h11   #2
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 705
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 705
Points : 4 346
Points : 4 346
Salut.

Bash ne gère pas comme ça les virgules flottantes, voici l'astuce :

Code :
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
Pour seulement afficher uniquement le résultat d'une opération :

man bc pour en savoir plus ...
__________________
modérateur rubriques Linux/Unix et chat
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2010, 14h33   #3
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
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 :
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
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2010, 20h04   #4
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 79
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : juillet 2009
Messages : 79
Points : 11
Points : 11
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?

Citation:
Envoyé par N_BaH Voir le message
[ $(bc <<<"$var > 0") ] && echo "$var > 0"
.1 > 0[/code]
Pardon, mais j'ai besoin de plus d'éclaircissements
Merci une autre fois!
vamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2010, 21h56   #5
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
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.

Citation:
Envoyé par vamos
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?
Code :
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
C'est plus clair ?

Dernière modification par N_BaH ; 03/01/2010 à 22h10.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2010, 18h22   #6
Candidat au titre de Membre du Club
 
Inscription : juillet 2009
Messages : 79
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : juillet 2009
Messages : 79
Points : 11
Points : 11
Citation:
Envoyé par N_BaH Voir le message
C'est plus clair ?
Oui N_BaH ,maintenant ca va mieux !
merci pour tout
vamos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 00h23.


 
 
 
 
Partenaires

Hébergement Web