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]]