IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Faire des opérations réelles avec bash ?


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    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
    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


  2. #2
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    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

  3. #3
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    nickel

    merci

  4. #4
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    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 ?

  5. #5
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "scale=1;(5/2)" | bc
    En résultat, tu obtiens:
    @++
    .Olivier

  6. #6
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    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

  7. #7
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    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
    [size=1]
    http://xrenault.developpez.com

  8. #8
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    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

  9. #9
    Membre éprouvé
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Points : 1 122
    Points
    1 122
    Par défaut
    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.

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Citation Envoyé par Larkine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire des coins arrondi avec un DIV
    Par dessinateurttuyen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 02/08/2006, 09h33
  2. faire des opérations sur la date courante
    Par transistor49 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/04/2006, 17h39
  3. Réponses: 7
    Dernier message: 02/03/2006, 13h43
  4. Cmt faire des états parametrés avec Cristal Report(VB 6)?
    Par bonsam dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/12/2005, 03h48
  5. [GD] Faire des PNG 8bits avec la GD2
    Par El Riiico dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 30/11/2005, 23h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo