Javascript Json最大整数
请告诉我,我如何从json中获取数字,为什么数字的末尾会出现零Javascript Json最大整数,javascript,json,Javascript,Json,请告诉我,我如何从json中获取数字,为什么数字的末尾会出现零 var a = '{ "n": 870744036720833075 }'; var json = JSON.parse(a); document.getElementById('test').innerHTML = json.n; // 870744036720833000 why? 如何修复此问题?此整数超过Javascript认为的安全整数。您可以通过运行Number.isSafeInteger(8707440367208
var a = '{ "n": 870744036720833075 }';
var json = JSON.parse(a);
document.getElementById('test').innerHTML = json.n; // 870744036720833000 why?
如何修复此问题?此整数超过Javascript认为的安全整数。您可以通过运行
Number.isSafeInteger(870744036720833075)
来测试这一点,它将返回false
。
因此,该数字将以最大可用精度存储
有关最大安全整数的说明,请参见。在文档中可以注意到这一点的副作用
在此上下文中,Safe指的是表示整数的能力
准确和正确地比较它们。例如
Number.MAX\u SAFE\u INTEGER+1==Number.MAX\u SAFE\u INTEGER+2将
计算为true,这在数学上是不正确的。看见
有关详细信息,请参见Number.isSafeInteger()
这意味着从Javascript的角度来看,您正在创建的数字和它提供给您的数字将与相同的东西进行比较
更新
要存储数字,必须将其视为字符串。将json更改为var a='{“n”:“870744036720833075”}代码>
如果需要对它们执行数学运算,可以找到一些Javascript库,它们对字符串编码的数字执行数学运算,例如,或注释中建议的数字
更新
如果您是从外部api获取此信息,则必须自己解析JSON。这个答案对你们来说可能是一个好的开始 您可能需要将此数字表示为字符串或压缩符号,因为它超过了数字。MAX_SAFE_INTEGER
常量(9007199254740991)检查此项谢谢,我理解,但如何在div的数字中获得它?我添加了一个更新,但基本上,您必须将其视为字符串。