Position caractère dans chaîne de texte

Accueil Forums Programmation WIMS Programmation d’exercices OEF Position caractère dans chaîne de texte

Vous lisez 6 fils de discussion
  • Auteur
    Messages
    • #3138
      Eric Guillet
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      je me demandais s’il existe l’équivalent de position(element,liste) pour les chaines de caractères.
      Par exemple pour connaître la position du point dans la chaîne 29.524
      En fait je voudrais formater des prix du style :
      32 –> 32.00
      52.1 –> 52.10
      D’alleurs, si ça se trouve, il existe un moyen tout prêt pour forcer le formatage d’un nombre (avec 2 chiffres après la virgule par exemple…).

      Merci d’avance pour votre réponse.

    • #3139
      Eric Guillet
      Participant
      Up
      0
      Down
      ::

      Je me réponds…

      \text{m=2456.8}
      \integer{cnt=wims(charcnt \m)}
      \integer{lst=wims(text mark . in \m)}
      \if {\lst!=0}{\integer{pos=\cnt-(log10(\lst))}}{\text{pos=}}

      \pos retourne la position de . dans \m (vide si pas de .)
      Pas très concis mais en attendant ça fonctionne…

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

      Hi,
      You could use ‘moneyprint’ for printing a number with n decimals (default is 2 decimals)

      \text{A = 1}
      \text{m = wims(exec moneyprint \A )}
      \m = 1.00
      if you want n decimals use
      \integer{n = 4}
      \text{m = wims(exec moneyprint \A \n )}
      \m = 1.0000

      hope this helps,
      Joke

    • #3142
      Eric Guillet
      Participant
      Up
      0
      Down
      ::

      Merci beaucoup Joke !

      Parfait ! C’est exactement ce dont je rêvais.
      Du coup mon exercice sera plus clair dans 6 mois…

      Eric

    • #3143
      Eric Guillet
      Participant
      Up
      0
      Down
      ::

      Malheureusement, cela ne passe pas sur mon serveur (V4.02)

      C’est trop récent…
      ou plutôt je crois bien que devrais faire la maj de mon serveur…

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

      Hi,

      the best way is to upgrade your wims…and not just for moneyprint…
      however there is yet another way, using BC (called float_calc in wims)
      (bc will truncate, so you have to add 0.005)

      
      \text{A=123.44444322}
      \text{price = wims(exec float_calc  scale=2; (\A+0.005)/1)}
      \statement{ price = \price}
      

      Joke

      • Cette réponse a été modifiée le il y a 8 années et 6 mois par jm.evers.
    • #3146
      Eric Guillet
      Participant
      Up
      0
      Down
      ::

      Bonjour Joke,

      Merci beaucoup pour cette élégante solution alternative qui fonctionne parfaitement sur mon serveur.

      Eric

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