我正在执行 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/