Vue处理超过16位数字精度丢失问题(数字最后两位变0)

问题

当我们使用MyBatis-Plus 使用 ASSIGN_ID(雪花算法) 生成的id作为主键时,因为其长度为19位,而前端一般能处理16位,如果不处理的话在前端会造成精度丢失,最后两位会变成00,感觉像是四舍五入后的效果,如下:

1648981853080055810 => 1648981853080055800

后端处理

@JsonSerialize(using = ToStringSerializer.class)
@TableId
private Long id;

前端处理

前端一般都是用axios进行数据请求,我们通过引入json-bigint来解决:

// 安装依赖
npm install json-bigint

// 使用
import JSONBIG from 'json-bigint'

axios.defaults.transformResponse = [
  function (data) {
    const json = JSONBIG({
      storeAsString: true
    })
    const res = json.parse(data)
    return res
  }
]

你可能感兴趣的:(vue.js,javascript,前端)