在我的Angular应用程序中,我正在对一个响应json对象的URL发出$ http.get()请求。该对象包含偶尔非常大的值(例如9106524608436223400)。看看Chrome中的网络分析器我可以看到这个数字正常下降但是当$ http.get()有回调时,这个数字会有所损坏。我认为这是因为数字非常大而不是字符串。有没有办法让Angular正确处理这个响应,还是我需要将服务器的输出包装成字符串?感谢。
答案 0 :(得分:3)
JavaScript中的数字是double precision floating point个数字。这意味着它们只能处理整数,最高可达52位。
用于解析JSON的任何代码都将无法为您提供未更改的值。
将在JavaScript中将该数字表示为常规数字。JSON standard未指定数字范围或精度的任何限制。但是,由于JSON基于JavaScript语法的一个子集,因此可以说该格式不支持JavaScript中可能表示的数字之外的数字。
为了安全地获取值,您需要将其作为字符串放在JSON中,或者将其拆分为两个或更多的较小数字。