Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

111
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda