Page 1 sur 1

module décimaux sixième

Publié : 19 janv. 2009, 16:26
par tala
Je jette actuellement un coup d'œil au module décimaux de sixième. Je dois avouer que j'ai des difficultés à comprendre la fonction nombreATrouver().
Elle génère des nombres décimaux dont certains ont une partie décimale composée de nombreux zéros.
La fonction sepmilliers() du module outils, d'après les commentaires :
# Insère les espaces fines pour séparer les milliers et remplace le point
# décimal par une virgule
Mais, pour "rattraper" le pb", cette fonction tronque les parties décimales au 3° chiffre après la virgule.
Exemples de sorties obtenues avec ces deux fonctions :

99.900000000000006 ---> '99,9'

8070.0200000000004 ---> '8\\,070,02'
Ne serait-il pas plus cohérent de corriger nombreATrouver à la base pour qu'elle produise directement des nombres utilisables par les élèves ?
Bon, je crois avoir trouvé mon souci : les expressions :

Code : Tout sélectionner

10 **(-random.randrange(1, 4))
et

Code : Tout sélectionner

10 **(-random.randrange(4, 7))
sont mal évaluées par l'interpréteur qui renvoie des résultats très proches mais pas rigoureusement exacts.
Nous pourrions arrondir les résultats de cette fonction à un certain rang.
En cherchant des renseignements sur la toile, j'ai constaté que les pbs d'arrondis étaient fréquents avec python. D'autres parmi vous ont-ils constaté des résultats bizarres ?

Re: module décimaux sixième

Publié : 19 janv. 2009, 18:16
par Jérôme
Le problème est que les réels sous Python sont des nombres à virgule flottante et que je ne vois pas comment rendre ces nombres "propres". La solution serait peut-être de n'utiliser que des rationnels avec numérateur et dénominateur entiers. Il faudrait alors créer une classe pour l'affichage de ces nombres. A creuser.
Mais peut-être que je me fourvoie totalement... :?: Dites-moi.

Re: module décimaux sixième

Publié : 19 janv. 2009, 18:49
par tala
Je me figure mal le travail nécessaire pour changer les décimaux dans l'ensemble de pyromaths. C'est sans doute loin d'être une urgence. Pour alimenter éventuellement les réflexions de chacun, j'ai appris l'existence d'un module decimal, interne à python, qui gère de manière plus propre les décimaux. La syntaxe parait assez lourde. Peut-être est-il plus efficace de repartir des rationnels ou même de ne rien changer si les erreurs restent invisibles des fiches d'exercices. A bientôt.

Re: module décimaux sixième

Publié : 19 janv. 2009, 19:21
par Jérôme
Je crois qu'elles sont effectivement invisibles. Mais ça peut valoir le coup d'y jeter un oeil.