Discuss Scratch
- Discussion Forums
- » Français
- » Problème avec les listes
- Lu_Li_49
-
Scratcher
500+ posts
Problème avec les listes
Bonjour,
J'ai essayé d'ajouter plusieurs fois 0.1 dans un des éléments d'une liste, et cela fait des choses étranges.
Après la première répétition, le résultat est 0.1, puis 0.2. Pour l'instant tout va bien.
À la troisième répétition, cela donne 0.30000000000000004.
À la quatrième, 0.4,
puis 0.5,
0.6
0.7
À la huitième, le problème recommence, cela fait 0.7999999999999999
et ça continue.
Je crois que mon ordi fait de la magie… Est ce que quelqu'un saurait régler ce problème totalement aléatoire, sans passer par une autre variable ni utiliser d'arrondi ? On pourrait très bien essayer en ajoutant 0.01 à chaque fois, ça fait la même chose.
Bonne fin de journée et merci d'avance pour vos réponses !
J'ai essayé d'ajouter plusieurs fois 0.1 dans un des éléments d'une liste, et cela fait des choses étranges.
quand le @greenFlag est cliqué::events hat
remplacer l'élément (1) de la liste [liste v] par (0)::list
répéter (10) fois {
remplacer l'élément (1) de la liste [liste v] par ((élément (1) de la liste [liste v]::list) + (0.1))::list
}::control
Après la première répétition, le résultat est 0.1, puis 0.2. Pour l'instant tout va bien.
À la troisième répétition, cela donne 0.30000000000000004.
À la quatrième, 0.4,
puis 0.5,
0.6
0.7
À la huitième, le problème recommence, cela fait 0.7999999999999999
et ça continue.
Je crois que mon ordi fait de la magie… Est ce que quelqu'un saurait régler ce problème totalement aléatoire, sans passer par une autre variable ni utiliser d'arrondi ? On pourrait très bien essayer en ajoutant 0.01 à chaque fois, ça fait la même chose.
Bonne fin de journée et merci d'avance pour vos réponses !
Last edited by Lu_Li_49 (Sept. 2, 2026 14:13:02)
- ma33-ma
-
Scratcher
1000+ posts
Problème avec les listes
Bonjour,ça c'est normal tout les langages font des approximation (sauf le COBOL mais vzy…) tu as cet article (c'est pour le PHP mais c'est pareil) qui explique pourquoi.
J'ai essayé d'ajouter plusieurs fois 0.1 dans un des éléments d'une liste, et cela fait des choses étranges.quand le @greenFlag est cliqué::events hat
remplacer l'élément (1) de la liste [liste v] par (0)::list
répéter (10) fois {
remplacer l'élément (1) de la liste [liste v] par ((élément (1) de la liste [liste v]::list) + (0.1))::list
}::control
Après la première répétition, le résultat est 0.1, puis 0.2. Pour l'instant tout va bien.
À la troisième répétition, cela donne 0.30000000000000004.
À la quatrième, 0.4,
puis 0.5,
0.6
0.7
À la huitième, le problème recommence, cela fait 0.7999999999999999
et ça continue.
Je crois que mon ordi fait de la magie… Est ce que quelqu'un saurait régler ce problème totalement aléatoire, sans passer par une autre variable ni utiliser d'arrondi ? On pourrait très bien essayer en ajoutant 0.01 à chaque fois, ça fait la même chose.
Bonne fin de journée et merci d'avance pour vos réponses !
Si tu veut régler l'affichage : fais un arrondit au 10000000 ième généralement ça suffit…
- AntoinoSills
-
Scratcher
100+ posts
Problème avec les listes
replace item (1 v) of [list v] with (round (item (1) [list v] + 0.1))tu peux utiliser le bloc arrondi de () pour être sûr que ça fait bien 0.1, 0.2…

- ma33-ma
-
Scratcher
1000+ posts
Problème avec les listes
ça pour le coup ça fais juste 0.1 (à chaque fois…)replace item (1 v) of [list v] with ((round (item (1) of [list v] ))+ (0.1))tu peux utiliser le bloc arrondi de () pour être sûr que ça fait bien 0.1, 0.2…
- Faucon16
-
Scratcher
100+ posts
Problème avec les listes
Sinon tu peux faire
Ça permettra d'arrondir les nombres à 0.1
replace item (1) of [list v] with (((round ((item (1) of [list v])/(0.1)))*(0.1))+(0.1))
Ça permettra d'arrondir les nombres à 0.1
Last edited by Faucon16 (Oct. 11, 2026 16:46:55)
- Discussion Forums
- » Français
-
» Problème avec les listes