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.