记录一次印象深刻的bug发现过程(由1个bug引出3个bug)

问题背景,直播结束后需要显示如下图的礼物打赏收入:

问题1:android端直播结束后没有显示礼物打赏收入

如图:

服务端是把直播打赏的金额返回来了的:

如图:

问题2:服务端返回的金额不对。这里有个需求是返回金额是总金额扣掉我们平台抽成40%后的金额,也就是返回60%,4695x60%=2817。应该返回金额是2817

但是如图返回的是4695:

问题3:存入数据库的打赏总收入是2815,实际按照公式计算应该是4695x60%=2817。数据相差2元。

如图数据库查询结果:

相差原因:

后面排查问题发现是打赏的礼物里面有些是49,999这种金额的,每次计算是在存入数据库的时候在乘x0.6,存入数据库的时候服务端调的方法会把金额四舍五入,如999x0.6=599.4,这样的打赏刚好有5个礼品,抹掉个位的4,0.4x5=2,所以导致最后金额计算不对,金额相差为2,后面改为,先乘x0.6,然后在存入数据库

原文地址:https://www.cnblogs.com/xiamaojjie/p/13682237.html