Layui 數據表格 回顯數值過大的字段(Long型數據)導致精度丟失問題


一、問題描述

    今天做項目時,使用到了layui的數據表格功能,這里給大家安利一下layui,確實好用,對沒有太多前端經驗的新手來說(比如我)很友好。

  下面開始說問題:我項目后端有一個包含Long型數據的實體類,前端使用layui數據表格,發送ajax請求進行數據回顯。

  數據表中正確的數據為:

  

 

   而到了前端layui數據表格里回顯之后就變成了:

  

 

  發生了精度丟失,關於精度丟失的問題,網上資料很多,很明顯精度丟失這個鍋要拋給js,因為layui畢竟也是拿js做的。

  js為什么會發生精度丟失?參考這篇博客https://www.cnblogs.com/littlestart/p/6023976.html

 

二、解決方案

    1.如果沒有用到layui,而是自己手寫js傳參,那么就可以在前端動動手腳,將數據轉為字符串就行。這種情況我也遇到過,詳細解決方案,教程很多。

   2.這里說明一下使用layui 數據表格時,遇到這種情況怎么辦:

    1) 我也看了目前Lay fly論壇上關於這個問題,各個用戶的解決方案,主要就是讓你去改后端實體類字段類型,將字段類型改為String,這種方式也可取,可以從根本上解決問題。

    2)但是當我遇到這個問題時,項目都快完成了,讓我去一個個改字段,更何況有些業務還需要到Long型數據,實在太麻煩了。於是難道我要去改layui.js?(layui的js文件),這種方式我也不想去過多考慮,因為怕改了之后,其他地方出現連鎖問題。最后,我從網上看到了其他的解決方案(既不需要改前端,也不要改后端):

      a)使用fastjson,導入fastjson包

          

      導包的時候請注意:不要使用1.2以下的fastjson版本

      b)在需要將Long型轉化為String類型的字段上添加注解(在進行json序列化時會自動發生轉化):

          

        

 

       注意:這個注解包含兩個類,導包時不要導錯了,如果項目中還有jackson依賴,可能會導包導成了:

          

 

 

       這樣就可以將問題解決了。

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM