0

我有一个 API 的乘法代码。

foreach($cXML->results->row as $sale)
        {
            $subId      = $sale->subid;
            $status     = $sale->status;
            $transId    = "ad".$sale->OrderID;
            $amount     = $sale->total_commission;
            $createdDate= $sale->date;
            $subIdExplode = explode('-', $subId);
            $userId     = $subIdExplode[0];
            $retailerId = $subIdExplode[1];
            $retailerQuery = mysql_query("select * from db_retailers where retailer_id = '".$retailerId."'");
            $retailer = mysql_fetch_array($retailerQuery);

            if(trim($retailer['member_top']) != "")
            {
                $commision = $retailer['coef']*$amount;
            }
        }

输入示例;

  • $retailer['coef'] 已输入为 0.6
  • $amount 已从 XML 检索为 2.50

$commission 应计算为 1.50。但是,它打印为 1.20

当从所有其他输入中调查 $amount 的小数部分由于某些原因没有被占用时,我发现了这种差异的原因。

我想不出任何可能性。

4

1 回答 1

0

虽然来自 XML 的值被视为带点的 2.50,但我怀疑它们可能是 2,50。

所以我添加了$amount = str_replace(',', '.', $amount);问题解决的代码。

于 2013-10-05T22:55:09.243 回答