Una pregunta rápida tal vez simple:
Estamos tratando de analizar una cadena en número, el número de muestra es "1928433000460244141", por lo que cuando tratamos de analizarlo en entero obtenemos 1928433000460244200
const no1 = "1928433000460244141" ; console.log(parseInt(no1)); // returns 1928433000460244200¿Qué puede causar este problema y cuál es la solución?
BigInt se puede usar para almacenar los datos, pero el problema es que queremos enviar la cadena convertida en número a un servicio que estamos usando en este momento, no tenemos ningún acceso, por lo tanto, es un servicio de terceros, por lo que debemos manejarlo desde Nuestro lado.
La constante MAX_SAFE_INTEGER tiene un valor de 9007199254740991 (9007199254740991 o ~9 cuatrillones). El razonamiento detrás de ese número es que JavaScript usa números de formato de punto flotante de doble precisión como se especifica en IEEE 754 y solo puede representar con seguridad números enteros entre -(2^53 - 1) y 2^53 - 1.
Debido a que su número es mayor que el límite de entero seguro, es probable que experimente algunos problemas de precisión de punto flotante que están redondeando el valor.