成语答题赚小程序里面涉及到金额的小数计算问题
发布于 4 年前 作者 jun97 3423 次浏览 来自 分享

是这样的,在成语答题赚小程序里面有个红包的概念,用户闯关答题,每次都是几分的小红包,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/

感谢群里大佬提供思路,再次感谢

回到顶部