在我的Angular应用程序中,我正在向一个响应json对象的URL发出$http.get()请求。该对象包含的值有时是一个非常大的数字(例如9106524608436223400)。看看Chrome中的网络分析器,我可以看到这个数字正在正确地下降,但是当$http.get()有它的回调命中时,这个数字会被损坏。我认为这是因为数字非常大,而不是字符串。有什么方法可以让Angular正确处理这个响应,或者我需要把服务器的输出包装成字符串吗?谢谢。
JavaScript中的数字是双精度浮点数。这意味着它们只能处理精度不超过52位的整数。
任何解析JSON的代码,如果在JavaScript中将数字表示为常规数字,将无法给你未改变的值。
JSON标准对数字的范围和精度没有任何限制。然而,由于JSON是基于JavaScript语法的一个子集,有人可能会说,这种格式不支持JavaScript可以表示的数字之外的数字。
为了安全地保持值不变,您需要将其作为字符串放在JSON中,或者将其拆分为两个或多个较小的数字。