为什么70 * 0.001 * 100000000>在MySQL中7000000?

时间:2014-11-25 19:14:55

标签: php mysql bitcoin

我正在为比特币赚钱门户创建一个基于比特币的广告平台。我提到它的原因是,我相信它有助于理解我的问题,从而我可以得到更好的解决方案。我正在用3个简单的步骤解释我的过程......

  1. 在PHP中计算订单金额...

    $ orderAmount = $ adUnitPrice * $ noOfUnit;

  2. 在DB中创建新的待处理订单...

    INSERT INTO存款(orderid,orderamount,status)VALUES('$ orderid','$ orderamount','pending');

  3. 在比特币付款时更新订单...

    更新存款SET状态='成功'WHERE orderid = $ orderid AND orderamount * 100000000< = $ value_in_satoshi AND status ='pending';

  4. 现在,$ 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。那么,它怎么会变得更高?

0 个答案:

没有答案