gpt4 book ai didi

JavaScript 误解数字

转载 作者:行者123 更新时间:2023-12-02 17:30:44 28 4
gpt4 key购买 nike

我执行 AJAX 调用来生成 ID。该 ID 在响应中发送回客户端并显示在输入字段中。我了解到浏览器中显示的 ID 不是生成的 ID - 最后一位数字不同。在服务器端,我使用 Adob​​e ColdFusion 自己的 serializeJSON() 函数序列化数据以将其传回客户端。它识别数字序列并将其序列化为数字。我将变量的内容记录在代码中的不同位置,它看起来一直很好。只有浏览器没有做我想要/期望的事情。

我将其归结为这个简单的示例:

var stru = {"MYID":2761602017000540006};
console.dir(stru);

控制台记录 2761602017000540000 而不是 2761602017000540006

这是为什么呢?这个数字是否太大而无法存储在 JavaScript 中?

最佳答案

Is the number too large to be stored in JavaScript?

是的,max safe integer9,007,199,254,740,991,而您尝试发送的号码是 2,761,602,017,000,540,006(大约大 1000 倍)。

这是因为 JavaScript number 类型遵循 IEEE 754 64 位 float 格式,不允许像 64 位整数通常那样大的数字。可以看到number类型值here in the ECMAScript spec 4.3.20的定义.

我建议您将 ID 作为字符串发送。

关于JavaScript 误解数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45285029/

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