Springboot Long类型数据太长返回给前端,精度丢失问题 复现、解决
前言
惯例,收到兄弟求救,关于long类型丢失精度的问题:

存在一个初学者不会,就会有第二个初学者不会,所以我出手。
正文
不多说,开搞。
如题, 后端返回的数据 给到 前端, Long类型数据太长导致精度丢失。
复现示例
比如我们写个接口:
我们特意去把 Long类型 14位 到 20位的数据都 塞到返回值里面
@RequestMapping("/test")@ResponseBodypublic TestDTO test(){TestDTO testDTO=new TestDTO();testDTO.setNumStr("12345678901234568901234567890123456890");testDTO.setNum14(12345678901234L);testDTO.setNum15(123456789012345L);testDTO.setNum16(1234567890123456L);testDTO.setNum17(12345678901234567L);testDTO.setNum18(123456789012345678L);testDTO.setNum19(123456789012345689L);testDTO.setNum20(1234567890123456890L);return testDTO;}

TestDTO.java:
public class TestDTO {private String numStr;private Long num14;private Long num15;private Long num16;private Long num17;private Long num18;private Long num19;private Long num20;//省略set、get
}
这时候前端调用看看效果,可以看到出现了精度丢失的场景:
原因
js数字的精度是有限的,Java的Long类型的数字超出了JavaScript的处理范围。
内部只有一种数字类型Number,双精度64位格式存储,即使整数也是如此。
最大的数值应该是2的53次方-1,十进制是【9007199254740991】,16位。
所以说超过16位,那么如果属于Number类型去解析的,就会丢失精度。
解决方案:
@JsonSerialize(using=ToStringSerializer.class)

看看效果:
好了,该篇就到这。
相关文章:
Springboot Long类型数据太长返回给前端,精度丢失问题 复现、解决
前言 惯例,收到兄弟求救,关于long类型丢失精度的问题: 存在一个初学者不会,就会有第二个初学者不会,所以我出手。 正文 不多说,开搞。 如题, 后端返回的数据 给到 前端, Long类型数…...
Anaconda虚拟环境的创建方法(命令创建)
虚拟环境介绍: 虚拟环境是一为某个项目创建的专属于它的python包,因此做python项目时,一般一个项目用一个虚拟环境。在实际开发中,如果项目A需要某个包的1.0版本,项目B需要此包的2.0版本。如果没有安装虚拟环境&#…...
数据结构——树与二叉树
作者:几冬雪来 时间:2023年3月22日 内容:数据结构树与二叉树的讲解(介绍) 目录 前言: 1.树的概念: 2.树与非树: 3.树的定义: 4.树的应用: 二叉树&…...
vue后台管理系统
后面可参考下:vue系列(三)——手把手教你搭建一个vue3管理后台基础模板 以下代码项目gitee地址 文章目录1. 初始化前端项目初始化项目添加加载效果配置 vite.config.js2. 使用路由安装路由配置路由配置别名和跳转安装pathvite.config.jsjsco…...
spring boot 集成 postgis jar
要将 PostGIS 集成到 Spring Boot 应用程序中,需要按照以下步骤进行操作:1. 将 PostGIS JDBC 驱动程序添加到项目依赖项中。可以在 Maven 或 Gradle 中添加以下依赖项:Maven:```xml <dependency><groupId>org.postgresql</groupId><artifactId>pos…...
【Java进阶篇】——反射机制
一、反射的概念 1.1 反射出现的背景 Java程序中,所有对象都有两种类型:编译时类型和运行时类型,而很多时候对象的编译时类型和运行时类型不一致 Object obj new String("hello")、obj.getClass(); 如果某些变量或形参的声明类型…...
Oracle中含有recover 状态的数据文件环境中,做异机恢复
背景: 我们在一些恢复测试案例中,会经常遇到一些奇怪的问题,其中有的是源端数据文件不规范而导致恢复过程出错,比较常见的错误有: 数据文件名称重复(如:/oradata1/user01.dbf 和 /oradata2/us…...
图像识别模型
一、数据准备 首先要做一些数据准备方面的工作:一是把数据集切分为训练集和验证集, 二是转换为tfrecord 格式。在data_prepare/文件夹中提供了会用到的数据集和代码。首先要将自己的数据集切分为训练集和验证集,训练集用于训练模型…...
[零刻]EQ12 N100 迷你主机:从开箱到安装ESXi+虚拟机
开箱先上图:配置详情:EQ12采用了Intel最新推出的N100系列的处理,超低的功耗,以及出色的CPU性能用来做软路由或者是All in one 相当不错,CPU带有主动散热风扇,在长期运行下散热完全不用担心,性价…...
MongoDB基础
优质博客 IT-BLOG-CN 一、简介 MongoDB是一个强大的分布式文件存储的NoSQL数据库,天然支持高可用、分布式和灵活设计。由C编写,运行稳定,性能高。为WEB应用提供可扩展的高性能数据存储解决方案。主要解决关系型数据库数据量大,并…...
【Linux】Linux基本指令(下)
前言: 紧接上期【Linux】基本指令(上)的学习,今天我们继续学习基本指令操作,深入探讨指令的基本知识。 目录 (一)常用指令 👉more指令 👉less指令(重要&…...
基于uniapp+u-view开发小程序【技术点整理】
一、上传图片 1.实现效果: 2.具体代码: <template><view><view class"imgbox"><view>职业证书</view><!-- 上传图片 --><u-upload :fileList"fileList1" afterRead"afterRead"…...
投稿指南【NO.7】目标检测论文写作模板(初稿)
中文标题(名词性短语,少于20字,尽量不使用外文缩写词)张晓敏1,作者1,2***,作者2**,作者2*(通信作者右上标*)1中国科学院上海光学精密机械研究所空间激光传输与探测技术重…...
【绘图】比Matplotlib更强大:ProPlot
✅作者简介:在读博士,伪程序媛,人工智能领域学习者,深耕机器学习,交叉学科实践者,周更前沿文章解读,提供科研小工具,分享科研经验,欢迎交流!📌个人…...
经典七大比较排序算法 ·上
经典七大比较排序算法 上1 选择排序1.1 算法思想1.2 代码实现1.3 选择排序特性2 冒泡排序2.1 算法思想2.2 代码实现2.3 冒泡排序特性3 堆排序3.1 堆排序特性:4 快速排序4.1 算法思想4.2 代码实现4.3 快速排序特性5 归并排序5.1 算法思想5.2 代码实现5.3 归并排序特性…...
【网络安全工程师】从零基础到进阶,看这一篇就够了
学前感言 1.这是一条需要坚持的道路,如果你只有三分钟的热情那么可以放弃往下看了。 2.多练多想,不要离开了教程什么都不会,最好看完教程自己独立完成技术方面的开发。 3.有问题多google,baidu…我们往往都遇不到好心的大神,谁…...
素描-基础
# 如何练习排线第一次摸板子需要来回的排线,两点然后画一条线贯穿两点画直的去练 练线的定位叫做穿针引线法或者两点一线法 练完竖线练横线 按照这样去练顺畅 直线曲线的画法 直线可以按住shift键 练习勾线稿 把线稿打开降低透明度去勾线尽量一笔的去练不要压…...
Elasticsearch:高级数据类型介绍
在我之前的文章 “Elasticsearch:一些有趣的数据类型”,我已经介绍了一下很有趣的数据类型。在今天的文章中,我再进一步介绍一下高级的数据类型,虽然这里的数据类型可能和之前的一些数据类型有所重复。即便如此,我希望…...
Golang每日一练(leetDay0012)
目录 34. 查找元素首末位置 Find-first-and-last-position-of-element-in-sorted-array 🌟🌟 35. 搜索插入位置 Search Insert Position 🌟 36. 有效的数独 Valid Sudoku 🌟🌟 🌟 每日一练刷题专栏 …...
Web前端:6种基本的前端编程语言
如果你想在前端web开发方面开始职业生涯,学习JavaScript是必须的。它是最受欢迎的编程语言,它功能广泛,功能强大。但JavaScript并不是你唯一需要知道的语言。HTML和CSS对于前端开发至关重要。他们将帮助你开发用户友好的网站和应用程序。什么…...
边缘计算中的存储挑战与解决方案
边缘计算中的存储挑战与解决方案 背景 作为一个专注于存储架构的技术人,我一直在关注边缘计算的发展。最近团队在部署边缘计算解决方案时,遇到了许多存储相关的挑战。为了帮助团队更好地理解和解决这些挑战,我决定写这篇实践指南。 边缘计算的…...
libvirt 有哪些命令
除了 virsh 外,还有很多有意思的命令。virt-manager 用于打开 libvirt 交互的界面除了连接本地电脑,也可以访问远程电脑的 libvirtd 服务virt-clone 快速克隆一个虚拟机。在 virt-manager 界面上也集成了这个功能。如下图,就是这么简单快捷&a…...
ColorControl专业调校指南:从问题诊断到显示优化的参数配置全流程
ColorControl专业调校指南:从问题诊断到显示优化的参数配置全流程 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl 一、问题诊断:你的显…...
Windows个性化视觉增强:TranslucentTB打造专属任务栏体验
Windows个性化视觉增强:TranslucentTB打造专属任务栏体验 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 您是否曾感到Window…...
OpenSSL实战:手把手教你创建自签名根证书
1. 为什么需要自签名根证书? 想象一下你正在搭建一个内部测试环境,或者为公司的内部系统建立一套专属的安全通信机制。这时候你会发现,所有涉及HTTPS的环节都需要SSL/TLS证书。如果直接购买商业CA颁发的证书,不仅成本高ÿ…...
如何通过League-Toolkit智能工具提升英雄联盟操作效率
如何通过League-Toolkit智能工具提升英雄联盟操作效率 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾因错过对局确认而被…...
工业能量:05.UPS如何救场(啤酒厂断电救命案例)
05.UPS如何救场(啤酒厂断电救命案例) 在工厂里,最昂贵的不是设备,而是“停机一秒的代价”。 前四期咱们把开关电源、浪涌、冗余聊了个遍,今天终于轮到大救星——UPS出场了!直接上个真事儿,啤酒厂的,让你们听完直呼“原来它这么猛”! 你以为啤酒厂停电就是灯黑了,大家…...
告别数据丢失!用ArcMap的‘图层组’功能,一次性搞定Shapefile转KML和标注
告别数据丢失!用ArcMap的‘图层组’功能高效实现Shapefile转KML与标注一体化 在GIS数据处理中,Shapefile转KML是常见需求,但保留标注信息往往让用户头疼。传统方法需要分别处理数据和标注,步骤繁琐且容易出错。本文将介绍如何利用…...
ChatGLM-6B角色扮演功能开发:基于Prompt的智能对话系统
ChatGLM-6B角色扮演功能开发:基于Prompt的智能对话系统 1. 引言 想象一下,你正在开发一个智能客服系统,需要让AI能够扮演不同角色的专业人士来回答用户问题。或者你正在创建一个教育应用,希望AI能够化身历史人物、科学导师或文学…...
惊艳!Pi0具身智能v1动作轨迹可视化:关节控制曲线清晰呈现
惊艳!Pi0具身智能v1动作轨迹可视化:关节控制曲线清晰呈现 1. 具身智能的动作可视化革命 在机器人实验室里,工程师小李正盯着屏幕上一堆杂乱的数据点发愁——这是他们最新研发的机械臂在执行抓取任务时生成的关节角度数据。理论上这些数字应…...
