2nde décimale = 0

Vous lisez 6 fils de discussion
  • Auteur
    Messages
    • #8841
      Lionel Verbecq
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      J’ai un prix à 2 décimales que je génére de manière aléatoire.
      Comment faire en sorte que la 2nde décimale s’affiche lorsqu’elle est nulle ?

      Exemple : comment faire pour que 1,5 € s’affiche 1,50 € dans mon statement ?

      Merci.

      Lionel.

    • #8842
      byache
      Participant
      Up
      0
      Down
      ::

      Bonjour,
      Je ne pense pas qu’il y ait quelque chose de pré-codé pour cela. Je ferais générer séparément trois variables a,bc (a pour la partie entière et b et c pour chaque décimale).
      Ensuite, je calculerais x=\a+\b/10+\c/100 pour l’usage interne et pour l’affichage : \text {xaff=\a,\b\c}

    • #8843
      jm.evers
      Participant
      Up
      1
      Down
      ::

      Hi,
      there is a small program just to do that and more
      it’s called moneyprint
      (read the docs)

      price= !exec moneyprint 12.3

      price = 12.30

      joke

    • #8844
      Avatar photoGilles Marbeuf
      Modérateur
      Up
      0
      Down
      ::

      Bonjour,

      en utilisant Pari/GP et la slib ecriturenombre pour transformer le point en virgule,
      si a est le prix à deux décimales généré :

      \real{c=pari(frac(\a))}
      \integer{B=pari(round(100*\c-10*truncate(10*\c)))}
      \if{\c=0}
        {\text{A=slib(numeration/ecriturenombre \a,comma tex)}}
        {\if{\B!=0}
          {\text{A=slib(numeration/ecriturenombre \a,comma tex)}}
          {\text{A=slib(numeration/ecriturenombre \a 0,comma tex)}}
      }
      
      \statement{
      \(\A\) €
      }
      
      • Cette réponse a été modifiée le il y a 2 semaines et 6 jours par Avatar photoGilles Marbeuf.

      Gilles

    • #8846
      Avatar photoGilles Marbeuf
      Modérateur
      Up
      0
      Down
      ::

      Une autre proposition :

      
      \real{c=pari(frac(\a))}
      \text{t=wims(replace internal 0. by in \c)}
      \integer{nb=wims(charcnt \t)}
      \if{\c=0}
        {\text{A=slib(numeration/ecriturenombre \a,comma tex)}}
        {\if{\nb=2}
          {\text{A=slib(numeration/ecriturenombre \a,comma tex)}}
          {\text{A=slib(numeration/ecriturenombre \a 0,comma tex)}}
        }
      
      \statement{ \(\A\) € }
      

      Gilles

    • #8847
      Lionel Verbecq
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      Merci pour vos réponses qui fonctionnent.
      Je ne connaissais pas moneyprint (ni l’existence de ce type de mini-programmes).

      Lionel.

    • #8849
      jm.evers
      Participant
      Up
      0
      Down
      ::

      Hi,
      There is more…
      Just take a look at wimsdoc.en :

      11. Interfaces to external software packages

      https://sercalwims.ig-edu.univ-paris13.fr/wims/wims.cgi?lang=fr&+module=help/wimsdoc

      joke

Vous lisez 6 fils de discussion
  • Vous devez être connecté pour répondre à ce sujet.