Javascript float subtrahieren
Ich Frage mich, wie kann ich subtrahieren zwei negative Floating-Point-zahlen in javascript. Ich habe versucht:
alert(-0.2-0.1);
und das Ergebnis ist -0.30000000000000004
. Mache ich etwas falsch? Was muss ich tun, um -0.3
?
- Ihr nicht die Subtraktion von 2 negativen.
- doppelt so, ist so, viele Fragen...
- mögliche Duplikate von JavaScript Math kaputt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, nichts falsch mit Ihrem code, die meisten Dezimalbrüche nicht exakt dargestellt werden
in der Binärdatei verwenden
Wo
x
ist die Anzahl der Dezimalstellen Sie wollen undnumber
ist das Ergebnis der Subtraktion.Du machst nichts falsch, was Sie sehen, ist die Nebenwirkung von Computern, Speicherung von zahlen zur Basis 2. In der Basis 10, 1/3 nicht exakt dargestellt: .33333333 (mit bar über die 3). Das gleiche gilt für 1/10 und 1/5 in der Basis 2 oder binärer. Die Antwort, die Sie sehen, ist lediglich das Ergebnis von einem Rundungsfehler. Wenn Sie arbeiten mit Geld, es wird oft geraten, nur speichern der Werte Cent zu vermeiden, dass einige floating-point-Fehler.
Soweit die Festsetzung dem Ergebnis, das Sie tun können, so etwas wie:
Den Grund deines Problems ist hier beschrieben:
Warum modulo-operator return gebrochene Zahl in javascript?
Eine mögliche Lösung könnte sein:
toFixed()
ist, was müssen Sie suchen.E. g
wobei x die Anzahl der Ziffern nach dem Dezimalpunkt. Es ist optional mit Standard-Wert von 0.
Mehr hier : Javascript-Zahl.toFixed () - Methode
Andere mögliche Lösung wäre diese:
X wo sollte die Toleranz in der Dezimalstellen, die Sie wünschen.
Läuft dieser mit einer
x
16, gibt mir eine Ausgabe von-0.3
.Lass es mich wissen.