parseInt () analisa literais numéricos com expoente incorretamente
Acabei de observar que oparseInt
A função não cuida dos decimais no caso de números inteiros (números que contêm oe
personagem).
Vamos dar um exemplo:-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
Eu esperava que oparseInt
também retornará0
. O que está acontecendo no nível mais baixo? PorqueparseInt
Retorna3
neste caso (alguns trechos do código fonte seriam apreciados)?
Neste exemplo eu estou usandonode v0.12.1
, mas espero que o mesmo aconteça no navegador e em outros mecanismos JavaScript.