Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

112
Views
javascript: ¿Por qué Number.MAX_SAFE_INTEGER + 2.000000000000001 es diferente de Number.MAX_SAFE_INTEGER + 2.0000000000000001?

Se dice en Wikipedia que los números representables entre 2⁵³ ~ 2⁵⁴ son todos números enteros pares.

Si hacemos let N = Number.MAX_SAFE_INTEGER (que es 2⁵³ - 1 = 9007199254740991), y calculamos los siguientes números: N+2 , N+2.0000000000000001 , N+2.000000000000001 , esperaría que fueran todos iguales, pero me equivoqué :

 N + 2 === 9007199254740992 N + 2.0000000000000001 === 9007199254740992 N + 2.000000000000001 === 9007199254740994

¿Alguien sabe por qué?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El primer número tiene un componente de punto subdecimal que requiere 2^-56 exponente:

 <<< '2.0000000000000001' gawk -v PREC=2000000 -nMbe '{ printf("\n\t0x%.16A\n\n",($0)%1) }' 0x 7.34ACA5F6226F0ADAp-56

el último 1 en la cola se perderá incluso durante el análisis, lo que significa que solo le está pidiendo que maneje

 [ 4^3^3/2 - 1 ] (ps:: this is my favorite way to express 2^53-1) + 2

lo cual supongo que la lógica de punto flotante de doble precisión por defecto no lo redondea. Pero a la inversa, el segundo ejemplo que proporcionó tiene un componente subdecimal que es

 0x 4.80EBE7B9D58566C8 p-52 ie 0.00000000000000 10000000000 0.000000000000000 2220446049 (~2^-52) Combining both, what the floating point system sees is 0x 2.000000000000 0 p+0 <~~~ 1st one 0x 2.000000000000 5 p+0 <~~~ 2nd one / This 5 made all the difference

ahora la mantisa tiene algo que usar para redondear las cosas.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!