[Java]Long类型的精度丢失

本文分析了SpringBoot后端在与前端交互时,Long类型ID在JS中可能出现的精度丢失问题,以及在HTTP传输过程中可能的拆包粘包导致的精度问题。为了解决这个问题,建议使用Jackson库的ToStringSerializer将Long转换为String类型进行传输,以避免精度丢失。同时,文章提及即使使用String类型,如果存在拆包粘包问题,仍可能导致精度问题。
摘要由CSDN通过智能技术生成

问题描述

SpringBoot后端与前端进行交互时候,传入的商品Long类型id,如:788532248499728384。

而前端接收以后,变成了:788532248499728380,Long类型发现了精度丢失。

原因分析

1、可能是JS中的long类型丢失

2、可能是http传输过程出现拆包粘包问题

问题解决

1、可能是JS中的long类型丢失

使用jackson下的转换,使得在传输过程该属性变为String类型

 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

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

 问题解决

2、可能是http传输过程出现拆包粘包问题

如果发生拆包粘包,String类型依然会发生精度丢失问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值