前端JS大数字精度丢失

当JavaScript的Number类型处理的数据超过安全整数范围时,会出现精度问题。后端为避免这种情况,可以将long型数据转换为String类型再返回。这可以通过在Java中使用@JsonFormat注解或将JsonSerialize注解配合ToStringSerializer类实现。
摘要由CSDN通过智能技术生成

原因:JavaScript的Number类型的安全整数范围是-2^{^{^{53}}}2^{_{53}},如果超过这个范围,就会发生精度丢失的问题。后端的解决办法:

将long型的数据转换为String类型返回,

public class User {
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private long id;
    //省略其他属性和方法
}

或者

public class User {
    @JsonSerialize(using = ToStringSerializer.class)
    private long id;
    //省略其他属性和方法
}

这样就可以将long型的数据转换为String类型返回给前端。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值