2

デフォルトでPHPの丸め(一種の)数値に問題があるようです。eBayAPIを呼び出して、アイテムの価格と送料を取り戻しています。データベースに入力する前に、これら2つの数値を加算する必要があります。問題は、2つの数値を加算すると、奇妙な値で返されるようです。

shipping = 5.95
item price = 18.55

2つを合計すると、結果が得られ23ます。

$ship = $item->shippingInfo->shippingServiceCost;
$price = $item->sellingStatus->currentPrice;
$sell = ($ship + $price);

戻り値が数値であることをphpに伝える必要がありますか?

4

3 に答える 3

3

両方の値が文字列ではなく、実際に整数または浮動小数点数であることを確認してください。文字列を互いに合計すると、奇妙な動作が発生する可能性があります。

これを試して:

$ship = (float) $item->shippingInfo->shippingServiceCost;
$price = (float) $item->sellingStatus->currentPrice;
$sell = ($ship + $price);

$sell はフロートで構成する必要があります。(float)変数を浮動変数にキャストするために使用できます。

于 2012-01-24T11:13:51.287 に答える
0

PHP 開発者としてのさまざまなシナリオで非常に重要であるため、一般的な型キャストを見てみましょう。

于 2012-01-24T11:24:07.663 に答える
0

問題は、$ship が .. を含む文字列であり、適切に float に変換されることではありませんが、それは ..であり、5 に変換されると5.95思います5,95

<?php
$ship = "5,95";
$price = "18,55";
$sell = ($ship + $price);
echo "$sell = ($ship + $price)";

?>

出力:

23 = (5,95 + 18,55)

変換:

<?php
$ship = (float) "5,95";
$price = (float) "18,55";
$sell = ($ship + $price);
echo "$sell = ($ship + $price)";
?>

出力:

23 = (5 + 18)

使用する:

$ship = str_replace(',','.',$ship);
$price = str_replace(',','.',$price); 

そして、それはうまくいくはずです!

于 2012-01-24T11:25:14.023 に答える