processing / processing/libprocessing
Discrepancy: number comparison differs from Processing Java `(0.1 + 0.2 == 0.3)`
Personne n'a encore pris cette issue.
- Langage dominant
- Rust
- Étoiles
- 69
- Forks
- 14
- Merge moyen
- 15 j 22 h
- PR mergées (30 j)
- 3
Description
I don't know whether this is something that needs to be addressed or just documented.
I suppose this is related to the difference between float and double precision (?)
In Processing, this condition evaluates to true:
void setup() {
size(400, 400);
if (0.1 + 0.2 == 0.3) {
background(0, 255, 0);
circle(200, 200, 100);
}
}
The equivalent mewnala sketch evaluates the condition as false.
from mewnala import *
def setup():
size(200, 200)
if 0.1 + 0.2 == 0.3:
background(0, 255, 0)
circle(200, 200, 100)
run()
Note: size is reduced in mewnala to account for https://github.com/processing/libprocessing/issues/198
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Exécutez les sketches Processing Java et mewnala Python fournis afin de confirmer les résultats différents. Analysez ensuite le comportement de l’évaluation numérique dans l’implémentation Rust et déterminez si la divergence doit être corrigée ou documentée, avec un test ou une mise à jour de la documentation définissant le comportement attendu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, python, rust
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 45/100