1. 程式人生 > >前端獲取long型數值精度丟失,preview與response顯示不一致

前端獲取long型數值精度丟失,preview與response顯示不一致

背景:

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

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


排查:

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

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


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

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

解決:

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

1、在後臺把long型改為String型別(推薦);

教程地址:簡單版高階版

2、讓前端支援long型。