成语答题赚小程序里面涉及到金额的小数计算问题
是这样的,在成语答题赚小程序里面有个红包的概念,用户闯关答题,每次都是几分的小红包,1分,2分,最多1毛钱
比如我现在红包有1.23,闯关答题奖励了0.01,这样我目前的总红包计算如下
1.23+0.01
这里就涉及到了小数位的计算问题,今天在小程序里面遇到了,在之前的逻辑里面没有处理好这个计算细节,经常会出现下面这种情况,这样就会导致在小程序首页展示的时候,出现不可控的情况。
当然您也可以说能不能只在界面显示2位小数,这没有问题,但是我想的是从根本解决这个问题
基于群里的讨论,目前总结了两个解决方案
1)采用第三方精准计算库,比如bigNumber.js
2)按分为单位存储红包金额,奖励的时候也按照分为单位
按照上述方案
1)
比如在计算的时候
1.23+0.01 = 1.24
我调研了下目前存在不少这方面的第三方库,我之前也采用过bigNumber.js
2)
123+1=124,最后展示的时候再除以100即可
从实现上两种方案都不复杂,我没有所谓的倾向使用哪种方案
1
bigNumber.js
https://github.com/MikeMcl/bignumber.js/
感谢群里大佬提供思路,再次感谢