这是我迄今为止遇到的最奇怪的问题之一,我有两个数字,我试图用 php 加起来,但由于某种原因,php 没有给我正确的结果。
我正在尝试添加带有$shipPrice
的$itemPrice
,这3.50 + 2.80
应该给我6.30
,但相反,我得到了5
.
我试过使用floatVal() function
但这没有区别,有人有任何想法吗?
下面是代码的示例
PHP代码
foreach($resp->ListOrderItemsResult->OrderItems->OrderItem as $order){
$itemPrice = $order->ItemPrice->Amount;
$shipPrice = $order->ShippingPrice->Amount;
$total = $itemPrice + $shipPrice;
$arr[] = array(
'sku' => $order->SellerSKU,
'isbn' => $order->ASIN,
'title' => $order->Title,
'item_price' => $itemPrice,
'ship_price' => $shipPrice,
'total' => $total,
'quantity_shipped' => $order->QuantityShipped,
);
}
输出
sku isbn title item_price ship_price total quantity_shipped
VM-F5TU-BN0K 1844831531 xxxxx 3.50 2.80 5 1
我的猜测是$itemPrice和$shipPrice是字符串,当您尝试将它们相加时,您会得到值 5。 如果对象中存储为字符串,请确保专门将$itemPrice和$shipPrice转换为浮点数。
检查数据库中价格字段的金额数据类型输出和数据类型。
$total = (float) $itemPrice + (float) $shipPrice;
我知道很多程序员,他们不是处理小数,而是将价格以美分为单位,然后将美分转换为美元金额。 您可以通过查看"PHP 虚拟属性"来找到有关此内容的更多信息。
这可以防止舍入错误等。 加上整数由计算机更好地处理。