Estoy haciendo una llamada http get desde un cliente Angular a una API web .net Framework 4.7
Tengo un servicio que me devuelve un objeto con valores, incluyendo una propiedad de tipo "long", el problema es que cuando depuro la respuesta en la api, me devuelve un número 99977733333333335 (que es lo que espero) pero cuando obtengo al navegador lo traduce a 9997773333333336
En resumen:
tipo de dato largo, en la base de datos queda como 9997773333333335 pero al recibir la respuesta en el frente llega como 9997773333333336.
¿Alguien puede explicarme por qué sucede esto? estas dando vueltas? ¿Cómo podría evitarlo?
Hecho: el campo en el DB es un Bigint.
respuesta de fondo:
Resultado de la interfaz:
El problema es que los números que está utilizando son más grandes que Number.MAX_SAFE_INTEGER . JavaScript no puede representar con precisión números enteros de este tamaño utilizando el tipo Number , por lo que es de esperar que se produzcan errores como el que está viendo.
Intente pasar estos valores al front-end como string s en lugar de long s. Si necesita hacer algún cálculo con ellos en el lado del cliente, primero convierta estas cadenas a BigInt s.