Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Json最大整数_Javascript_Json - Fatal编程技术网

Javascript 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

请告诉我,我如何从json中获取数字,为什么数字的末尾会出现零

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的数字中获得它?我添加了一个更新,但基本上,您必须将其视为字符串。