我从int的API id_post接收了此字符串:
1080281724263649280
当我使用JSON.parse时,我收到:
1080281724263649300
为什么值不相同并且总是四舍五入?
为什么在localhost中输入正确的值,而在服务器中输入正确的值?
请帮助之前非常感谢
答案 0 :(得分:1)
因为您的电话号码太大:
var x = `{ "z" : 1080281724263649280 }`
var y = 1080281724263649280;
console.log(
JSON.parse(x)
)
console.log(Number.MAX_SAFE_INTEGER)
console.log(y)
// -------------------------------------
// A workaround: Convert to string before parsing
x = x.replace(/:\s+(\d{15,})/g,`: "$1"`)
// or using ES6 syntax which I find unnecessarily verbose here
// x = x.replace(/:\s+(?<num>\d{15,})/g,`: "$<num>"`)
console.log(
JSON.parse(x)
)