发现报错:点击修改无法展示信息。修改时调用 findOne, 以 id(long) 为参数值,页面传的参数是 id=148004249825564000。在数据库中这个 id=148004249825564012,id 出现了错误 。
原因:js 的 number 类型的最大值是 9007199254740992,这个值是 16 位。
如果超过这个值,js 会出现不精确的现象。
解决方法:
1.后端传递字符串类型。
js 数字类型 number 的最长长度是16位。如果数值变量的长度超过 16 位,可以将这个数值变量转为字符串变量,再传到前端。
如果传到前端的变量是集合,那么应该把集合里的每个变量都进行类型转换。
2.在实体类中增加一个字符串类型的 id 映射字段。
可以在 User 对象中增加一个 String 类型的 id 映射字段,如下:
private Long userId;
private String userIdStr;
public String getUserIdStr() {
return this.userId + "";
}
public void setUserIdStr(String userIdStr) {
this.userIdStr = userIdStr;
}
原帖地址: 关于超过js的number类型最大值(9007199254740992),的解决办法_zealot_cc的博客-CSDN博客_js number最大值