最近在测试微信、支付宝支付时用一分钱(计算来的实际不到0.01,只有0.009998...)测试支付,经常出现支付金额为0的问题,解决方案:
把金额✖️1000,在四舍五入(也可以向上舍入、向下舍入),在➗1000即可:
round(price * 1000) / 1000; // float失真问题解决
本文介绍了一种解决微信、支付宝支付中使用极小额(如0.009998元)进行测试时出现的支付金额为0的问题。通过将金额乘以1000后四舍五入再除以1000的方法来规避浮点数运算误差。
最近在测试微信、支付宝支付时用一分钱(计算来的实际不到0.01,只有0.009998...)测试支付,经常出现支付金额为0的问题,解决方案:
把金额✖️1000,在四舍五入(也可以向上舍入、向下舍入),在➗1000即可:
round(price * 1000) / 1000; // float失真问题解决
742

被折叠的 条评论
为什么被折叠?