nombre changeant

Vous lisez 0 fil de discussion
  • Auteur
    Messages
    • #7137
      Lionel Verbecq
      Participant
      Up
      0
      Down
      ::

      Bonjour,

      Dans un exercice que j’écris sur les conversions d’unités , j’obtiens ceci lorsque je veux tester l’exercice en insérant automatiquement la bonne réponse.

      https://mathscollege.ynh.fr/nextcloud/s/36eyWeZJGg3zWaR

      Comment est-ce possible ? Pourquoi wims change mon 3 en 0.29999… ?

      Comment l’éviter ?

      Pour info voici mon code ( j’obtiens ma réponse, puis si elle est en écriture scientifique -je n’en veux pas, je la force avec pari pour rester en décimal, puis je regarde si la fin du nombre se termine par .0, si oui je retire .0 de la fin de la chaine de caractère pour obtenir ma réponse ( en text ):

      \real{rep1=\n1*10^(\z1*2)}

      \real{rep2=\n2*10^(\z2*2)}

      \text{rep1deci=pari(default(format, « f.20 »);

      u1=\rep1;

      printf(u1);

      )}

      \text{rep2deci=pari(default(format, « f.20 »);

      u2=\rep2;

      printf(u2);

      )}

      \integer{nbre1=wims(charcnt \rep1deci)}

      \integer{nbre2=wims(charcnt \rep2deci)}

      \text{der1=wims(char -2 to -1 of \rep1deci)}

      \text{der2=wims(char -2 to -1 of \rep2deci)}

      \text{fin=.0}

      \if{\der1==.0}{\text{rep1bisdeci=wims(char 1 to -3 of \rep1deci)}}{\text{rep1bisdeci=\rep1deci}}

      \if{\der2==.0}{\text{rep2bisdeci=wims(char 1 to -3 of \rep2deci)}}{\text{rep2bisdeci=\rep2deci}}

      \statement{Convertir :

      • \n1 \unit[\u1] = \embed{r1,10} \unit[\u1+\z1]
        « 
      • \n2 \unit[\u2] = \embed{r2,10} \unit[\u2+\z2]

      }

      \answer{}{\rep1bisdeci}{type=case}

      \answer{}{\rep2bisdeci}{type=case}

      Autre question, pourquoi l’écriture forcée en décimale des grands nombres se termine parfois par .0 ? Comment l’éviter ?

      Evidemment si vous savez simplifier mon code, n’hésitez pas.

      Merci.

      Lionel.

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