后端long类型数据在前端产生精度损失

在后端开发中,Long类型常用于生成唯一ID,如雪花算法。然而,当这些ID传递给前端JavaScript时,由于Number类型的限制,可能会导致精度丢失。JavaScript的Number能表示的整数范围比Java的long小,因此转换时会出现问题。为解决这个问题,文章提出了将Java的Long类型数据转换为字符串进行传递的方法,例如使用@JsonSerialize注解配合ToStringSerializer类。

后端我们常常会用Long类型的数据作为ID,例如用雪花算法生成唯一ID
java中long类型的取值范围 (-9,223,372,036,854,775,808)(9,223,372,036,854,775,807)。有19位数字
JavaScript的Number类型是浮点数类型,它可以表示的整数范围是从(-9,007,199,254,740,992)到2^53(9,007,199,254,740,992)只有16位数字
所以转换过程中会有精度损失
解决办法,将java long类型的数据转换为字符串返回

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值