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 :

comparaison de 2 nombres decimaux


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par défaut comparaison de 2 nombres decimaux
    salut,
    J'ai merais savoir comment comparer 2 nombres décimaux en bash...

    if [ ${variable1} > ${variable2} ]

    crée un fichier variable2

    if [ ${variable1} -ge ${variable2} ]
    j'ai droit à un
    integer expression expected

    merci pour votre aide.
    Cassy

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    A ma connaissance, Bash ne sait toujours pas gérer les nombres décimaux.
    Tu peux utiliser ksh93 qui en est capable ou alors déléguer le test à bc, awk ou perl.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par défaut
    if [[ ${variable1} > ${variable2} ]] est la solution

    et b'hein non même pas...
    car 32.4 devient plus petit que 5.4
    il doit faire une comparaison en string...

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Il y a surement mieux, mais ceci devrait le faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if [ $(echo "$a - $b" | bc | tr -d .) -gt 0 ]
    then
    echo "$a >= $b"
    else
    echo "$a < $b"
    fi

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Comme suggéré plus haut le mieux est de te tourner vers le shell korn, souvent beaucoup plus rapide du reste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #! /usr/bin/ksh
    LC_NUMERIC='C'
    if (( 34.2 > 2.5 ))
    then
        print "plus grand"
    fi
    Attention au locales: 34.2 <> 34,2, c'est pourquoi j'ai forcé les locales à C.

Discussions similaires

  1. Colonne de type varchar2 et comparaison d'un nombre
    Par macben dans le forum PL/SQL
    Réponses: 5
    Dernier message: 04/03/2009, 11h01
  2. Lecture de nombres decimaux
    Par Djahny dans le forum Langage
    Réponses: 4
    Dernier message: 04/04/2008, 20h30
  3. probleme importation nombres decimaux excel csv
    Par ayisse dans le forum Débuter
    Réponses: 5
    Dernier message: 18/07/2007, 15h13
  4. ecrire des nombres decimaux dans EDIT Control
    Par craryb dans le forum MFC
    Réponses: 1
    Dernier message: 22/03/2007, 19h28
  5. [ASA]Conversion de nombres decimaux en toute lettre
    Par Fab_57 dans le forum Sybase
    Réponses: 1
    Dernier message: 22/08/2006, 14h49

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