processing / processing/libprocessing

Discrepancy: number comparison differs from Processing Java `(0.1 + 0.2 == 0.3)`

Offen
#203 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Rust
Sterne
69
Forks
14
Ø Merge
15 T. 22 Std.
Gemergte PRs (30 T.)
3

Beschreibung

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

Image

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Führe die bereitgestellten Processing-Java- und mewnala-Python-Skizzen aus, um die unterschiedlichen Ergebnisse zu bestätigen. Verfolge anschließend das Verhalten der numerischen Auswertung in der Rust-Implementierung und ermittle, ob die Abweichung behoben oder dokumentiert werden sollte, wobei ein Test oder eine Dokumentationsaktualisierung das erwartete Verhalten definiert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, python, rust
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.