js超长数字溢出问题
tags: #js #联调 #踩坑 #output
https://www.cnblogs.com/wudanyang/p/15940613.html
现象
之前遇到过的一个问题
接口要返回给前端(js)一个比较长的数字:759830849237899244
看了接口返回是没问题的,但是前端拿着数字去取详情的时候,传过来的是另外一个数字:759830849237899300
一比较,看起来是数字被转换了
759830849237899244
=> 759830849237899300
在前端控制台执行一下:
![[Pasted image 20220226212150.png]]
果然被转成了另外一个数字,而且看规律很像是后三位被上取整了
原理
后来了解到js会将数字按照下图方式切分后表示数字,以至于最高表示的数字只能到 9007199254740991
比这个数字更大的数字就会发生进位溢出
![[Pasted image 20201109201831.png]]
解决方案
解决方案很好办,那就是将数字转成字符串,只要前端不强转成数字,那就不会出问题
![[iShot2022-02-26 21.46.09.jpg]]
参考文档
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/15940613.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)