现象:

前端解析后端的返回,在接口返回获取的long类型的值,是一个数字,但是发现前端展示出来丢失了精度。

展示如下:

发现后端返回的数据和前端展示不一致,后面变成了0000。

问题原因:
1、后端使用64位存储长整数(long),最大支持9223372036854775807

2、前端的JavaScript使用53位来存放。

最大支持9007199254740992,超过最大值的数,可能会出现问题(得到的溢出后的值);

解决方式:
可以从后端或者前端两方来处理(其中一方进行处理即可,或者两方都处理)。

简单通用方法:后端解决传输为string类型
这个问题无非就是数值移除了,那么可以将数字转换为字符串返回给前端即可,前端解析时,因为是字符串,自然不会出现溢出的问题;

一般项目中Long类型字段的数量比较多,可以配置Jackson,将所有的数字在序列化时,都转换为字符串

Logo

前往低代码交流专区

更多推荐