go大数、小数处理方案(解决精度问题)


通常我们处理小数时,由于编程语言遵循的规范,目前绝大部分语言中的float类型都存在精度问题,

为了解决这类问题,通常会将小数先转为整数,再进行计算,这一步已经能满足大部分小数处理问题了。

 

但是,在遇到非常多位小数的情况下,比如0.000000000000000000000000018,这个时候按照上面的方案,转成整数去进行计算,很容易溢出,go中uint64类型最大也只能有4003012203950112768。

 

好在go官方提供了math/big库,该库支持超大数和超大位小数的计算,保证精度。

 

还有一个第三方库,shopspring/decimal,专用于处理小数计算的,该库的实现方案也是类似的,将小数转为整数,再调用math/big库进行计算


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM