0

以下のコードは PHP で書かれており、XML 応答ファイルから価格を返します。

$price = $result->Items->Item->OfferSummary->LowestNewPrice->FormattedPrice; //lowest new price 
$listPrice = $result->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice; //list price

$price または $listPrice をエコーすると動作します

2 つの価格の差を取得したいのですが、取得すると NULL になります

$savings = $listPrice - $price; or $savings = ($listPrice - $price);

どんな援助も大歓迎です

4

3 に答える 3

2

おそらく、文字列から文字列を減算しようとしています。値を数値型に変換する必要があります。価格を扱う場合は、おそらく浮動小数点数が必要になるでしょう:

$price = floatval($result->Items->Item->OfferSummary->LowestNewPrice->FormattedPrice); //lowest new price 
$listPrice = floatval($result->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice); //list price

$savings = $listPrice - $price;
于 2013-04-14T16:08:09.083 に答える
1

$price と $listprice は数値 (整数または倍精度) であると想定しているため、単独でエコーすると数値に見える可能性がありますが、解析を妨げている空白を含む文字列である可能性があります。空白を削除するには、trim() を使用してみてください (例: $price = trim($price))。

于 2013-04-14T16:06:13.823 に答える
0

それらは数値のように見えるかもしれませんが、念のため浮動小数点数にキャストする価値があるかもしれません。

$savings = floatval($listPrice) - floatval($price);
于 2013-04-14T16:07:50.323 に答える