js超长数字溢出问题
2022/2/26 23:26:27
本文主要是介绍js超长数字溢出问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
tags: #js #联调 #踩坑
现象
之前遇到过的一个问题
接口要返回给前端(js)一个比较长的数字:759830849237899244
看了接口返回是没问题的,但是前端拿着数字去取详情的时候,传过来的是另外一个数字:759830849237899300
一比较,看起来是数字被转换了
759830849237899244
=> 759830849237899300
在前端控制台执行一下:
果然被转成了另外一个数字,而且看规律很像是后三位被上取整了
原理
后来了解到js会将数字按照下图方式切分后表示数字,以至于最高表示的数字只能到 9007199254740991
比这个数字更大的数字就会发生进位溢出
解决方案
解决方案很好办,那就是将数字转成字符串,只要前端不强转成数字,那就不会出问题
参考文档
JSON Bigint 大数精度丢失的背后
JSON.parse parses / converts big numbers incorrectly
这篇关于js超长数字溢出问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程
- 2024-12-20Vuex4课程:新手入门到上手实战全攻略