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 éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    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
    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

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    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
    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
    ?

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    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 150
    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 confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 354
    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 354
    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

  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
    Par défaut
    Pourquoi ne pas simplement utiliser la commande


  8. #8
    Expert confirmé 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 : 48
    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
    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 confirmé 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 : 48
    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
    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, 09h31
  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, 18h33
  3. Diviser un champ montant par 100
    Par zilfana63 dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/02/2008, 11h40
  4. Trouver un Nb divisible par N valeur
    Par rico63 dans le forum Excel
    Réponses: 3
    Dernier message: 06/02/2008, 14h22
  5. problème de division par 100
    Par trent94 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2005, 22h08

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