今天遇到一个js中因为数字过大而导致数据传输时精度丢失,导致疯狂报错的问题(无奈),检查了好几遍代码后确定并没有写错代码,然后又回来找原因,这也好像是我第一次遇到大数字传输的问题。。。我的需求就只是通过一个很长的id值,然后发起请求并从后端获取相应的数据,最后发现是id值过长导致的报错,下面是我对这个问题的一些思考和理解
JavaScript可以很精准的来表示-2^53到2^53之间的数(不包含端点),ES6中提供了两个方法Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER来表示最高最低两个值,输出如下👇
Number.MIN_SAFE_INTEGER的值,👇
Number.MAX_SAFE_INTEGER的值,👇
在实际运用中,只要数值超过了规定的上限或者是下线,数值就有可能(概率还挺大的!!)失去精度,比如说👇将JavaScript对象转换成json字符时发生错误
let obj = {
id:90071992547410057,
name:"Tom",
ag