javascript - 来自 Jquery.ajax 的 JSON 响应四舍五入较大的数字,所以我无法获得正确的值

标签 javascript jquery json ajax

我正在执行 AJAX 获取请求,这是我在 Paw/Postman 等程序中获得的响应:

[
  {
    "registrantKey": 4131401026087862797,
  }
]

但是当我这样做的时候:

.done(function(data, textStatus, jqXHR) {
    $.each(data, function(index){
    console.log(data[index].registrantKey);
    });
})

它将此注册者键值视为一个大数字,并四舍五入最后的数字,因此打印到控制台的值为:4131401026087863000。如何获取原始值,如 Paw/Postman 中所示。我不需要对它执行任何数学运算我只需要这个值。我尝试使用 toString() 方法进行试验,但无法使其正常工作。非常感谢您的帮助。

更新 不幸的是,这在 javascript 中是不可能的。唯一的解决方案是使用另一种语言或尝试让原始开发人员将值作为字符串返回。感谢 Rory 和 Madalin。

最佳答案

问题是JS的精度问题,与jQuery或AJAX无关。在 JS 中,一个数字最多只能包含 16 个整数,最多 9,007,199,254,740,991(又名 Number.MAX_SAFE_INTEGER)

如果您需要显示更大的数字,则必须将其作为字符串使用,但请注意,如果您尝试将其转换为数字类型,它将被向下舍入到 JS 可以使用的最大精度。

关于javascript - 来自 Jquery.ajax 的 JSON 响应四舍五入较大的数字,所以我无法获得正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40585328/

相关文章:

javascript - 垂直居中高度未知的div

c# - 在弹出窗口关闭时刷新页面?

javascript - Javascript toFixed() 方法中的舍入

javascript - 为什么复选框在 FF3 中保持选中状态,但在 IE、Chrome 或

Ruby 哈希、鸭子类型和 JSON 反序列化

for循环中的javascript闭包

javascript - 垂直边框左侧的间距

android - 使用 REST 接口(interface)连接到数据库 : Cannot connect

ios - Alamofire 获取请求和 JSON 响应

javascript - 更改元素时自动保存