为什么整数值在JSON.parse调用后发生变化

时间:2019-05-05 14:57:53

标签: javascript node.js

代码:

var string = '{"id": 2,"process_id": 1123565935011360768}';
console.log('Before JSON.parse:',string);
string = JSON.parse(string);
console.log('After JSON.parse:',string);

输出:

Before JSON.parse: {"id": 2,"process_id": 1123565935011360768}
After JSON.parse: {id: 2, process_id: 1123565935011360800}

为什么JSON.parse更改process_id? 它以某种方式舍入最后一位数字,例如它是一个浮点值。

1 个答案:

答案 0 :(得分:1)

JavaScript中的所有数字均为浮点数。 (请参阅:https://www.w3schools.com/js/js_numbers.asp)因此,该数字将转换为最接近的可表示值。用作标识符的长随机数通常以字符串形式存储。