go大數、小數處理方案(解決精度問題)


通常我們處理小數時,由於編程語言遵循的規范,目前絕大部分語言中的float類型都存在精度問題,

為了解決這類問題,通常會將小數先轉為整數,再進行計算,這一步已經能滿足大部分小數處理問題了。

 

但是,在遇到非常多位小數的情況下,比如0.000000000000000000000000018,這個時候按照上面的方案,轉成整數去進行計算,很容易溢出,go中uint64類型最大也只能有4003012203950112768。

 

好在go官方提供了math/big庫,該庫支持超大數和超大位小數的計算,保證精度。

 

還有一個第三方庫,shopspring/decimal,專用於處理小數計算的,該庫的實現方案也是類似的,將小數轉為整數,再調用math/big庫進行計算


免責聲明!

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



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