我正在为比特币赚钱门户创建一个基于比特币的广告平台。我提到它的原因是,我相信它有助于理解我的问题,从而我可以得到更好的解决方案。我正在用3个简单的步骤解释我的过程......
在PHP中计算订单金额...
$ orderAmount = $ adUnitPrice * $ noOfUnit;
在DB中创建新的待处理订单...
INSERT INTO存款(orderid,orderamount,status)VALUES('$ orderid','$ orderamount','pending');
在比特币付款时更新订单...
更新存款SET状态='成功'WHERE orderid = $ orderid AND orderamount * 100000000< = $ value_in_satoshi AND status ='pending';
现在,$ adUnitPrice始终为0.001。只要$ noOfUnit不等于70,一切都正常。每当$ noOfUnit = 70时,更新操作没有执行,因为事实证明'orderamount * 100000000< = $ value_in_satoshi'返回false。在这种情况下,$ value_in_satoshi等于7000000。
P.S。即使它是浮点误差,IEEE 754浮点数学中的0.001重新预期也会低于实际的0.001。那么,它怎么会变得更高?