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 :

Addition de deux décimaux avec un .


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut Addition de deux décimaux avec un .
    Bonjour,

    Je souhaites additionner deux variables contenant un décimal avec un .
    Et je n'y arrive pas.
    Voici comment je m'y prends pour additionner deux variables avec une , :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ~$ BAL02=3,7
    ~$ BAL01=2,6
    ~$ echo $BAL01 $BAL02 | awk '{print $1 + $2}'
    J'ai trouvé des trucs sur le net utilisant la commande xmodmap, mais cela me semble compliqué.
    Pourriez-vous svp me donner une piste ?
    D'avance merci

  2. #2
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Avec 18 chiffres après le .

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    J'ai trouvé des trucs sur le net utilisant la commande xmodmap,
    je suis curieux. Tu peux nous donner le lien, stp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -v addi=3.8 -v tion=2.4 'BEGIN{printf("%.18f\n", addi+tion)}'
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Voici la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BALTOT=$(echo "$BAL01 + $BAL02" | bc)

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    la solution à quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo '3.8+2.4' | bc                                                                                                                                                                                           
    6.2
    on est loin des 18 chiffres après la virgule !
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    je suis curieux. Tu peux nous donner le lien, stp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -v addi=3.8 -v tion=2.4 'BEGIN{printf("%.18f\n", addi+tion)}'
    https://forum.ubuntu-fr.org/viewtopic.php?id=1582721

    Et merci ;-)

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    xmodmap n'a rien à voir avec l'addition de deux décimaux : ça sert à (re)configurer (mapper) le clavier sur X11.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Citation Envoyé par N_BaH Voir le message
    la solution à quoi ?
    Je me demande encore. Certains seront sans doute plus heureux avec cette version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ echo "${BAL01/,/.} + ${BAL02/,/.} ;" | bc -l
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    En fait je parlais de la solution d'additionner 2 nombres avec un point au lieu d'une virgule...

  10. #10
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Voici mon petit script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BALANCE01=35000.6549872315
    BALANCE02=12.6548986532
    GLOBAL_BALANCE=$(echo "$BALANCE01 + $BALANCE02" | bc)
     
    echo -e "BALANCES :              "
    echo -e "   01  Ligne01           $BALANCE01"
    echo -e "   02  Ligne02           $BALANCE02"
    echo -e "        Global Balance  $GLOBAL_BALANCE"
    Je souhaiterais que à l'affichage, les deux valeurs numériques s'affichent en étant aligné par rapport au point.
    En supposant que les valeurs à gauche du . peuvent changer en taille. Par contre, à droite du point, il y aura toujours 10 décimals (normalement)
    Or, dans mon cas les deux valeurs s'affichent en étant aligné sur la gauche.

    Résultat de l'affichage :

    BALANCES :
    01 Ligne01_________35000.6549872315
    02 Ligne02_________12.6548986532
    Global Balance______35013.3098858847

    Aussi, les valeurs de BALANCE01 et BALANCE02 changent régulièrement.

    J'ai cherché du côté de printf mais sans succès...
    Pourriez-vous m'aider svp ?

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    les noms de variables tout en majuscules sont, par convention, réservés aux variables d'environnement (HOME, PATH...).
    les noms des variables utilisateur peuvent être "panachés" (balanceGlobale).

    pour ton souci, avec printf, il faut faire précéder l'indication du nombre de décimales par le nombre de caractères total maximal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LC_NUMERIC=C printf '%25.18f\n' 000.123 0.45
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Points : 91
    Points
    91
    Par défaut
    Bonjour N_BaH,

    Merci beaucoup, comme toujours, tu m'es d'une grande aide dans mon business ;-)

  13. #13
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Citation Envoyé par BEEP-BEEP Voir le message
    En fait je parlais de la solution d'additionner 2 nombres avec un point au lieu d'une virgule...
    Ouiiii. Donc on est d'accord que ça répondait pas du tout au problème.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

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

Discussions similaires

  1. Deux décimales avec un point, mais un seul point
    Par daphi dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 08/07/2016, 12h13
  2. [Turbo Pascal] Addition de deux polynômes avec liste chaînée
    Par Ecquini dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 01/11/2011, 19h11
  3. Réponses: 13
    Dernier message: 07/05/2009, 10h52
  4. Affichage d'un flotant avec deux décimales
    Par bigupgza37 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 13/11/2008, 17h33
  5. Convertir variable Single en String avec deux décimales
    Par Pierre.g dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/08/2008, 13h18

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