gpt4 book ai didi

javascript - Json 最大 int 数

转载 作者:行者123 更新时间:2023-11-29 10:04:14 25 4
gpt4 key购买 nike

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

var a = '{ "n": 870744036720833075 }';
var json = JSON.parse(a);

document.getElementById('test').innerHTML = json.n; // 870744036720833000 why?

我该如何解决这个问题?

最佳答案

这个整数超出了 Javascript 认为的安全整数。您可以通过运行 Number.isSafeInteger(870744036720833075) 来测试它,这将返回 false。因此,数字以最大可用精度存储。

参见 here有关最大安全整数的解释。可以在文档中注意到它的副作用。

Safe in this context refers to the ability to represent integers exactly and to correctly compare them. For example, Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 will evaluate to true, which is mathematically incorrect. See Number.isSafeInteger() for more information.

这意味着从 Javascript 的 Angular 来看,您正在创建的数字和它为您提供的数字将与同一事物进行比较。

更新

要存储数字,您必须将其视为字符串。将您的 json 更改为 var a = '{ "n": "870744036720833075"}';

如果你需要对它们进行数学运算,你可以找到一些对字符串编码数字进行数学运算的Javascript库,比如strint ,或评论中建议的那些。

更新

如果您从外部 API 获取此信息,则必须自己解析 JSON。 This答案对你来说可能是一个好的开始。

关于javascript - Json 最大 int 数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47188449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com