Para una aplicación web, quiero poder manejar números de hasta 64 bits de tamaño. Durante las pruebas, descubrí que javascript (o el navegador en su conjunto) parece manejar hasta 17 dígitos. Un número de 64 bits tiene un máximo de 20 dígitos, pero después de que javascript haya manejado el número, los 3 dígitos menos significativos se redondean y se establecen en 0 ... ¿Alguna idea de dónde viene esto? Más importante aún, ¿alguna idea de cómo evitarlo?¿Cómo puedo manejar números mayores de 17 dígitos en Firefox/IE7?
Respuesta
en JavaScript, todos los números son IEEE double precision números de punto flotante, lo que significa que sólo tiene alrededor de 16 dígitos de precisión; el resto de los 64 bits están reservados para el exponente. Como señala Fabien, tendrás que trabajar algunos trucos para obtener más precisión si necesitas los 64 bits.
creo que es necesario tratarlos como cadenas si se ha alcanzado el límite Javascript (see here)
Puede tratar de dividirlos en dos o más números (en una clase tal vez), pero es posible que necesite algunas funciones auxiliares aritméticas para trabajar con ellos.
Saludos
Como otros nota, JS implementa dobles, así que tendrá que buscar otro lugar para manejar los números más grandes. BigInt es una biblioteca para matemáticas de precisión arbitary para enteros.
- 1. Manejo de números mayores que Largo en VBA
- 2. tienda los mayores 5000 números de una serie de números
- 3. Clasifique N números en orden de dígitos
- 4. ¿Cómo se maneja con números mayores que UInt64 (C#)
- 5. Cómo leer números de varios dígitos en brainfuck
- 6. ¿Manejar números grandes en C++?
- 7. DecimalFormat convierte números con dígitos no
- 8. RegEx: ¿Cómo puedo hacer coincidir todos los números mayores que 49?
- 9. ¿Cómo manejar los números de forma genérica?
- 10. ¿Cómo puedo mostrar los dígitos nativos específicos de la cultura en lugar de los números arábigos?
- 11. Cómo codificar una solución para manejar números grandes?
- 12. C#: ¿Cómo debo manejar la aritmética con números enormes?
- 13. números de análisis sintáctico con múltiples dígitos en Prolog
- 14. Separar números largos por 3 dígitos
- 15. Generando números binarios de n dígitos en clojure
- 16. ¿Cómo puedo ordenar números lexicográficamente?
- 17. ¿Cómo puedo manejar archivos grandes en Ruby?
- 18. mayor palíndromo con números de 3 dígitos en pitón
- 19. ¿Cómo se hacen las matemáticas (o matemáticas) con números mayores que MaxValue en C#?
- 20. ¿Por qué necesito 17 dígitos significativos (y no 16) para representar un doble?
- 21. ¿Cómo hago un bitwise y en números mayores a 2^32 en Javascript?
- 22. Agregue coma a los números cada tres dígitos con C#
- 23. Dígitos inversos en R
- 24. ¿Cómo puedo contar los números en una cadena de texto/números mixtos?
- 25. Redondeando números a n decimales en clojure
- 26. NSNumberFormatterCurrencyModecador de números de estilo sin dígitos decimales
- 27. Suma de los mayores divisores impares de los primeros n números
- 28. ¿Cómo puedo almacenar un par de números en C++?
- 29. ¿Cómo puedo manejar eventos clave en meteoritos?
- 30. ¿Cómo puedo manejar SIGINT en Erlang?