网站首页php

PHP浮点数小坑

发布时间:2018-09-10 10:21:29编辑:slayer.hover阅读(3826)

    在调试微信支付遇到的问题,

    1.  提交订单金额时

    $total_fee = intval($orders['amount'] * 100);


    当$orders['amount']的值为19.9时, 得到的结果会少一分,应写为:

    $total_fee = intval(strval($orders['amount'] * 100));



    2.  支付回调时, 比较订单金额和回调金额

    if ( $orders['fee']*100==$notify->data['total_fee'] ) {...}


    当$orders['fee']的值为0.14时,上面两个值不相等。应使用BC数学库,写为:
     

    if ( bccomp($orders['fee']*100, $notify->data['total_fee'])==0) ) {...}


评论