VUE - bigint解决前端精度丢失的问题
VUE - bigint解决前端精度丢失的问题
问题描述
java后端long类型的范围
-
-2^63~2^63,即:-9223372036854775808~9223372036854775807,它是19位的。
-
这个数字可以通过方法获得:Long.MAX_VALUE、Long_MIN_VALUE。
前端JS的数字类型的范围
-
-2^53~2^53,即:-9007199254740991~9007199254740991,它是16位的。
-
这个数字可以通过方法获得:Number.MAX_SAFE_INTEGER、Number.MIN_SAFE_INTEGER。
结论
可见,Java后端的Long宽度大于前端的。雪花算法一般会生成18位或者19位宽度的数字,那么这时就会出问题。
1. 安装 插件
yarn add big-int
yarn add json-bigint
yarn add bignumber.js
2. 使用
var bigInt = require("big-int");
let senceId = bigInt(a.SenceIdString);
import BigNumber from 'bignumber.js'; let senceId= new BigNumber(10000000008214144);
axios接口调用返回值转换
import JSONBIG from "json-bigint"; export async function api_GetFilesWithAuth(authStr) { const res = await axios({ url: `${assistURL}/api/TFiles/GetFilesWithAuthAsync`, methods: 'get', params: { authStr: authStr, }, transformResponse: [ function (data) { // 对 data 进行任意转换处理 debugger; const jsonTruns = JSONBIG({ // storeAsString: true, }); return jsonTruns.parse(data); }, ], }); return res; }
end.
分类:
前端方向 / 前端技术-VUE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异