¿Por qué parseInt(0.0000005) de JavaScript imprime "5"?

¿Por qué parseInt (0.0000005) en JavaScript imprime 5? ¡Una pregunta increíble!

Prefacio

Recientemente, he tenido un problema extraño al desarrollar un proyecto, parseInt (0.0000005) === 5😱. Normalmente, la salida 0 es correcta, pero ¿por qué 5? Exploremos este problema juntos.

1. ¿Cuándo usas parseInt?

En primer lugar, ¿cuándo sueles usar parseInt? La mayoría de las veces, lo usamos para analizar una cadena y devolver su parte entera . Con esta pregunta, echemos un vistazo al método parseInt.

2. Algunas cosas sobre parseInt

La función parseInt(string, radix) analiza un argumento de cadena y devuelve un número entero de la base especificada (la base en los sistemas numéricos matemáticos).

Sintaxis

parseInt(string)
parseInt(string, radix)

parseInt('0.5') // 0
parseInt('0.5') // 0
parseInt('0.05') // 0
parseInt('0.005') // 0
parseInt('0.0005') // 0
parseInt('0.00005') // 0
parseInt('0.000005') // 0
parseInt('015') // 15
parseInt('015', 8) // 13
parseInt('15px', 10) // 15

Cuando el primer parámetro de parseInt es un número, ¿cómo se analiza?

La verdad de parseInt(0.0000005) === 5también está aquí...

3.1. El primer paso es convertir el número astring

Verifiquemos los valores basados ​​en cadenas usando la función String para ver cuál es el resultado de cada uno de estos:

String(0.5);      // => '0.5'
String(0.05);     // => '0.05'
String(0.005);    // => '0.005'
String(0.0005);   // => '0.0005' 
String(0.00005);  // => '0.00005'
String(0.000005); // => '0.000005'
String(0.0000005); // => '5e-7' pay attention here

Entonces, significa que cuando usamos parseInt(0.0000005), es igual parseInt('5e-7')y se basa en la definición:

parseInt puede interpretar solo una parte inicial de la cadena como un valor entero; ignora cualquier unidad de código que no se pueda interpretar como parte de la notación de un número entero, y no se da ninguna indicación de que se hayan ignorado tales unidades de código.

parseInt(0.0000005)
parseInt('5e-7') // 5

4. ¿Cómo obtener la parte entera de un número de punto flotante de forma segura?

Se recomienda la siguiente función Math.floor():

Math.floor(0.5);      // => 0
Math.floor(0.05);     // => 0
Math.floor(0.005);    // => 0
Math.floor(0.0005);   // => 0
Math.floor(0.00005);  // => 0
Math.floor(0.000005); // => 0
Math.floor(0.0000005); // => 0

Ahora, ¿puedes explicar por qué parseInt(99999999999999999999999999)es igual a 1?

Gracias por leer.

Más contenido en PlainEnglish.io . Regístrese para recibir nuestro boletín semanal gratuito . Síguenos en Twitter y LinkedIn . Únete a nuestra comunidad Discord .

Suggested posts

los pronombres dan mucho miedo

Me llama la atención De repente, como ocurre con tanta frecuencia Es el punto medio de nuevo <No, no el del Pacífico, tú, el del carnaval> Todos los titulares en voz alta...

El primer libro para niños sobre drogarse

El primer libro para niños sobre drogarse

(Advertencia: esto es una sátira, con la intención de ser alegremente subversivo; definitivamente no es para niños) Has visto a tu mamá y papá esconderse en la cocina y fumar esos cigarrillos malolientes. ellos te dicen

Related posts

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

"La fosa de las Marianas revelada: revelando las aterradoras verdades ocultas del abismo"

Introducción: Bienvenidos, valientes lectores, a un viaje que nos llevará a las profundidades más oscuras de nuestro planeta. En este blog, profundizamos en el enigmático mundo de la Fosa de las Marianas, descubriendo sus secretos ocultos y descubriendo las verdades escalofriantes que se encuentran debajo de su superficie.

No más contraseñas: cómo las claves de acceso reemplazarán su contraseña

No más contraseñas: cómo las claves de acceso reemplazarán su contraseña

Para evitar ambigüedades se utilizarán los siguientes términos; autenticador; El teléfono móvil que se utiliza para realizar el inicio de sesión en el sitio web; El sitio web o la aplicación que el usuario está utilizando para realizar el servicio de solicitud de inicio de sesión; El proveedor que proporciona el servicio dado, por ejemplo

Financiamiento de la eliminación de carbono en el año fiscal 24

El desglose de las solicitudes de asignaciones de Carbon180 a través de vías

Financiamiento de la eliminación de carbono en el año fiscal 24

Por Alyson Lee, asesora de gestión de asuntos gubernamentales El proceso de asignaciones anuales del gobierno federal es fundamental para nuestros esfuerzos por financiar la eliminación de dióxido de carbono (CDR). Cada año, Carbon180 envía solicitudes a varias oficinas del Congreso para ayudar a guiar hacia dónde fluirán los dólares del próximo año.

Lo que puede hacer en su temporada de espera (esperando conseguir su primer trabajo en tecnología)

Lo que puede hacer en su temporada de espera (esperando conseguir su primer trabajo en tecnología)

Cambiar a una nueva carrera puede ser extremadamente desafiante si trata de hacerlo solo. Es importante encontrar socios responsables que estén en el mismo nivel de aprendizaje que usted, que compartan objetivos, tenacidad e impulso similares.