parseInt () analysiert Zahlenliterale mit falschem Exponenten
Ich habe gerade beobachtet, dass dieparseInt
-Funktion kümmert sich nicht um die Dezimalstellen bei ganzen Zahlen (Zahlen, die das @ enthalte
Zeichen).
Nehmen wir ein Beispiel:-3.67394039744206e-15
> parseInt(-3.67394039744206e-15)
-3
> -3.67394039744206e-15.toFixed(19)
-3.6739e-15
> -3.67394039744206e-15.toFixed(2)
-0
> Math.round(-3.67394039744206e-15)
0
Ich habe erwartet, dass dieparseInt
gibt auch @ zurü0
. Was ist in der unteren Ebene los? Warum tutparseInt
Rückkehr3
in diesem Fall (einige Ausschnitte aus dem Quellcode wären willkommen)?
In diesem Beispiel verwende ichnode v0.12.1
, aber ich erwarte dasselbe in Browsern und anderen JavaScript-Engines.