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

Unix Discussion :

valeur numérique divisée par 100.


Sujet :

Unix

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut valeur numérique divisée par 100.
    Bonjour,

    J'ai une chaine numérique en % et je souhaiterai la divisé par 100 en ksh.

    Exemple : 4.65% ,je souhaiterai avoir 0.0465
    100%, je souhaterai avir 1.
    95%.=====> 0.95

    Merci pour votre aide.

    J'ai essayé un tas de fonctions et ça ne marche pas.

    Merci pour votre aide

  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
    Points : 7 882
    Points
    7 882
    Par défaut
    Si c'est ksh93:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ v="4.65%"
    $ echo $((${v//%}/100))
    0.0465
    sinon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ v="4.65%"
    $ echo $v | nawk -F % '{print $1/100.}'
    0.0465
    ɹǝsn *sıɹɐlos*

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    dans les deux cas, j'ai une erreur.


    Le premier avec awk me retourne 0.04 alors que je devrais etre à 0.465

    le second :
    ${v//%}/100: bad substitution


    Deplus, on va dire que j'ai réussi à retier le %


    donc il y a simplement à calculer 90==>0.90

    Merci pour vos réponses

  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
    Points : 7 882
    Points
    7 882
    Par défaut
    Tu es sous quel Unix ?
    Es-tu sûr que tu utilises ksh ?

    Que disent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ksh --version
    strings /usr/bin/ksh|grep -i version
    ?
    ɹǝsn *sıɹɐlos*

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Bonjour,

    Citation Envoyé par jlliagre Voir le message
    Que disent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ksh --version
    strings /usr/bin/ksh|grep -i version
    ?
    Une autre solution :
    Pour connaitre le shell par defaut de l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    grep -- $(whoami) /etc/passwd
    Pour connaitre le shell courant : taper n'importe quoi dans la ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $> uhcrpmueoac
    ksh: uhcrpmueoac: not found
    Si c'est bien KSH, alors un CTRL+V dans l'invite du shell te donnera aussi la version.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 266
    Points : 12 681
    Points
    12 681
    Par défaut
    Bonjour,
    Une méthode avec sed
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ v=90
    $ echo 00${v}. | sed -e 's/\([0-9][0-9]\)\./.\1/' -e 's/^0*//' -e 's/^\./0./' -e 's/0*$//' -e 's/\.$//'
    0.9
    $ v=95
    $ echo 00${v}. | sed -e 's/\([0-9][0-9]\)\./.\1/' -e 's/^0*//' -e 's/^\./0./' -e 's/0*$//' -e 's/\.$//'
    0.95
    $ v=950
    $ echo 00${v}. | sed -e 's/\([0-9][0-9]\)\./.\1/' -e 's/^0*//' -e 's/^\./0./' -e 's/0*$//' -e 's/\.$//'
    9.5
    $ v=.8
    $ echo 00${v}. | sed -e 's/\([0-9][0-9]\)\./.\1/' -e 's/^0*//' -e 's/^\./0./' -e 's/0*$//' -e 's/\.$//'
    0.008
    $ v=100
    $ echo 00${v}. | sed -e 's/\([0-9][0-9]\)\./.\1/' -e 's/^0*//' -e 's/^\./0./' -e 's/0*$//' -e 's/\.$//'
    1
    Cordialement.

  7. #7
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Pourquoi ne pas simplement utiliser la commande


  8. #8
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    ou dc qui est aussi souvent disponible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # echo $SHELL
    /bin/ksh
    # varentree=4.65%                            
    # echo  4k ${varentree%%\%*} 100 / pq | dc   
    .0465
    #

  9. #9
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par vince2005 Voir le message
    dans les deux cas, j'ai une erreur.


    Le premier avec awk me retourne 0.04 alors que je devrais etre à 0.465
    c'est qu'un décalage + juste ajouter le format pour augmenter la précision à 4 decimales au lieu d'arrondir...

Discussions similaires

  1. [XL-97] MACRO - division par 100
    Par HINDI58 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2013, 10h31
  2. Critère de valeur absolue => Division par zéro !?
    Par dut-dut dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/07/2008, 19h33
  3. Diviser un champ montant par 100
    Par zilfana63 dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/02/2008, 12h40
  4. Trouver un Nb divisible par N valeur
    Par rico63 dans le forum Excel
    Réponses: 3
    Dernier message: 06/02/2008, 15h22
  5. problème de division par 100
    Par trent94 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2005, 23h08

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