这是我到目前为止遇到的最奇怪的问题之一, 我有两个数字,我试图在PHP中添加,但由于某种原因,PHP没有给我正确的结果。
我正在尝试添加$itemPrice
$shipPrice
3.50 + 2.80
,6.30
应该给我5
,而是floatVal() function
。
我尝试使用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,
);
}
,但没有任何区别,是否有人有任何想法?
代码示例
php代码
sku isbn title item_price ship_price total quantity_shipped
VM-F5TU-BN0K 1844831531 xxxxx 3.50 2.80 5 1
输出
{{1}}
答案 0 :(得分:5)
我的猜测是$ itemPrice和$ shipPrice是字符串,当你尝试将它们组合在一起时,你得到的值为5.确保你专门将$ itemPrice和$ shipPrice作为浮点运行,如果存储在你的将对象作为字符串。
答案 1 :(得分:2)
检查数据库中的数据类型输出和价格字段的数据类型。
答案 2 :(得分:1)
$total = (float) $itemPrice + (float) $shipPrice;
答案 3 :(得分:1)
我知道很多程序员不用处理小数就会把价格换成美分,然后将美分兑换成美元金额。您可以通过goggling“PHP虚拟属性”找到更多相关信息。
这可以防止舍入错误等。计算机可以更好地处理整数。