I have just observed that the parseInt function doesn\'t take care about the decimals in case of integers (numbers containing the e character).
I think the reason is parseInt converts the passed value to string by calling ToString which will return "-3.67394039744206e-15", then parses it so it will consider -3 and will return it.
The mdn documentation
The parseInt function converts its first argument to a string, parses it, and returns an integer or NaN