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 27/08/2006, 22h06   #1
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
Par défaut Faire des opérations réelles avec bash ?

bonjour,
j'ai un problème de multiplication
si je faisça m'affiche 24 donc ça marche sauf que je veux faire 1*1.825 par exemple ce qui devrait me donner environ 1.825. mais j'ai un joli message d'erreur
Citation:
bash: 1 * 1.825 : syntax error in expression (error token is ".825 ")
j'ai cherché sur google et j'ai rien trouvé

est-ce que bash ne sait pas multiplier des réels ? si quelqu'un sait comment faire, je prend

Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2006, 22h25   #2
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Bonjour Michaël,

Il faut que tu saches que Bash ne sait pas travailler avec les nombres à virgule flottante. Tu peux résoudre le problème en utilisant le programme bc.

Par exemple:
Ce qui te donne comme résultat:
@++
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 09h59   #3
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
nickel

merci
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 21h03   #4
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
c'est normal que ça ne marche pas avec la division ? j'essaie avecet ça me donne 2 au lieu de 2.5. j'ai aussi essayé de remplacer 5 par 5.0 (pour forcer le float) mais ça n'a rien changé

une idée ?
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 21h11   #5
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Tu peux utiliser scale. Cele permet de spécifier le nombre de décimales après la virgule. Il y a peut-être une autre méthode mais dans ce cas je ne l'a connais pas.

Ce qui te donne pour ton calcul ceci:
Code :
echo "scale=1;(5/2)" | bc
En résultat, tu obtiens:
@++
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2006, 22h18   #6
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Si je puis me permettre, ce serait bon de rajouter ceci dans la FAQ


Arnaud
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 01h08   #7
Membre émérite
 
Avatar de Pouic
 
Inscription : octobre 2004
Messages : 668
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2004
Messages : 668
Points : 904
Points : 904
Ben alors, les man, c'est pour les chiens ?
Pour la division, on passe bc en mode "math standard" :

__________________
Software becomes slower faster than hardware becomes faster

http://xrenault.developpez.com
API C standard (C ANSI )
Pouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2006, 09h41   #8
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
je m'étais contenté d'un --help
merci

mais je suis d'accord pour la faq, il nous manque les opérations arithmétiques, spécialement dans ce cas
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 16h16   #9
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
Citation:
Envoyé par Pouic
Ben alors, les man, c'est pour les chiens ?
Pour la division, on passe bc en mode "math standard" :

En effet le man c'est pas pour les chiens. D'ailleurs il y est dit que l'option -l charge la librairie mathématique (ce qui défini quelques fonctions) et ça déclare la variable scale à 20.
Donc je pense qu'il est plus approprié de définir soi-même la variable scale si on a l'intention de se limiter à faire des opérations de base.
Enfin bon, après vous faites ce que vous voulez... ^^
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2006, 15h59   #10
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Citation:
Envoyé par Larkine
Code :
echo "scale=1;(5/2)" | bc
Et, pour les fans de la RPN/NPI (si, si il en reste...)
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat 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 +2. Il est actuellement 09h58.


 
 
 
 
Partenaires

Hébergement Web