Freecodecamp: Problem mit genauem Änderungsproblem

Erstellt am 4. Aug. 2016  ·  5Kommentare  ·  Quelle: freeCodeCamp/freeCodeCamp

Name der Herausforderung

https://www.freecodecamp.com/challenges/exact-change

Fehlerbeschreibung

Ich hatte ein Problem mit diesem Problem aufgrund ungenauer Berechnungen beim Arbeiten mit dem Wert "0,01". Manchmal hatte der Rückgabewert der Berechnung nach 7 oder 8 Dezimalstellen einen falschen Wert (z. B. 1,01 - 0,01 = 0,999999996).
Hatte jemand anderes ein ähnliches Problem?
Ich habe es geschafft, es zu lösen, aber ich habe trotzdem viel Zeit gebraucht, um es zu tun, da dieses Problem nicht auftreten sollte ... Jeder hat eine Ahnung, warum es so ist. Meiner Meinung nach liegt es daran, dass js Integer- und Float-Werte speichert ...

Browser-Informationen

  • Browsername, Version: Google Chrome, 52.0.2743.82 (64-Bit)
  • Betriebssystem: Linux Ubuntu 16.04
  • Mobil, Desktop oder Tablet: Laptop

Dein Code


Bildschirmfoto

help wanted

Hilfreichster Kommentar

Hallo, @FatKoala. Hier und an anderen Stellen im Internet können Sie alles über Gleitkomma-Arithmetik (und gute Möglichkeiten, damit umzugehen) lesen.

Und eine lustige Tatsache: JavaScript unterscheidet nicht zwischen Gleitkommazahlen und Ganzzahlen. 1 und 1.00000 sind in JS dieselbe Zahl (obwohl dies nicht unbedingt die Ursache für die aufgetretenen Gleitkomma-Genauigkeitsfehler ist).

Es kann sinnvoll sein, eine Ressource zur Gleitkomma-Arithmetik (obwohl nicht unbedingt die, auf die ich oben verwiesen habe) in die hilfreichen Links dieser Herausforderung aufzunehmen, da dies wahrscheinlich die erste ist, bei der Benutzer die damit verbundenen Präzisionsprobleme verstehen müssen.

cc @ FreeCodeCamp / Issue-Moderatoren für Feedback zum Hinzufügen eines solchen Links (und welcher Link hinzugefügt werden soll)

Alle 5 Kommentare

Hallo, @FatKoala. Hier und an anderen Stellen im Internet können Sie alles über Gleitkomma-Arithmetik (und gute Möglichkeiten, damit umzugehen) lesen.

Und eine lustige Tatsache: JavaScript unterscheidet nicht zwischen Gleitkommazahlen und Ganzzahlen. 1 und 1.00000 sind in JS dieselbe Zahl (obwohl dies nicht unbedingt die Ursache für die aufgetretenen Gleitkomma-Genauigkeitsfehler ist).

Es kann sinnvoll sein, eine Ressource zur Gleitkomma-Arithmetik (obwohl nicht unbedingt die, auf die ich oben verwiesen habe) in die hilfreichen Links dieser Herausforderung aufzunehmen, da dies wahrscheinlich die erste ist, bei der Benutzer die damit verbundenen Präzisionsprobleme verstehen müssen.

cc @ FreeCodeCamp / Issue-Moderatoren für Feedback zum Hinzufügen eines solchen Links (und welcher Link hinzugefügt werden soll)

Ja, das ist ein sehr interessantes Thema und sollte meiner Meinung nach angesprochen werden.

In JavaScript gibt es nur einen numerischen Datentyp, der number und es ist normalerweise ein 64-Bit-Gleitkomma (wenn man bedenkt, wie Browser (genauer gesagt JS-Engines) sie implementieren).

Lassen Sie uns dies als Hilfe markieren, die jemand in der Community benötigt, um eine gute Ressource zu verknüpfen. Ich werde versuchen, auch nachzuschauen, aber ja, es ist besser, wenn es von jemandem kommt, der vielleicht ein Sprachexperte ist.

Vielen Dank für den Link, es war hilfreich ... war wirklich frustriert über das Problem, während ich programmierte ... jetzt hat es Sinn ... Ich stimme zu, dass es irgendwo verlinkt oder früher erklärt werden sollte, dass diese Dinge passieren ...

Ich habe ein bisschen herumgestöbert und

@dhcodes bitte weitermachen ,: zwinker:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen