天天看點

前端擷取long型數值精度丢失,preview與response顯示不一緻

背景:

今天上午,我們的項目中遇到了這麼一個問題:

後端傳回了long型數值,但是前端接收後,後面的幾位都變成0了,如圖所示:

前端擷取long型數值精度丢失,preview與response顯示不一緻

排查:

傳回的數值是由後端傳回,是以我們一開始以為是後端的原因,但是經過排查,我們發現後端一切都是正常的,那麼問題出在了哪裡呢?

利用Postman來請求,我們發現傳回的資料是正常的,後來我看了一下Response,裡面的資料竟然也是正常的!

前端擷取long型數值精度丢失,preview與response顯示不一緻

抱着Preview 和Response不一樣的想法,經過百度,終于得知:

由于JavaScript中Number類型的自身原因,并不能完全表示Long型的數字,在Long長度大于17位時會出現精度丢失的問題。

解決:

原因有了,那麼解決的方法是顯而易見的:

1、在背景把long型改為String類型(推薦);

教程位址:簡單版、進階版

2、讓前端支援long型。

教程位址:Java Script中實作Long型

繼續閱讀