2012-01-24 65 views
2

我似乎有一個PHP舍入(排序)數字默認情況下的問題,我打電話給eBay API並獲取物品和郵資的價格。我需要將其輸入我的數據庫之前,這兩個數字增加,這個問題似乎是,當我添加兩個數字了,他們帶回來一個奇怪的值:PHP,從易趣API返回的號碼問題

運費= 5.95 項目價格= 18.55

如果我添加兩個了,我得到的23

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

因此我需要告訴PHP返回的值是多少?

+0

「shippingServiceCost」和「currentPrice」字符串? –

+1

仔細檢查小數點是否爲「。」。而不是一個「·」 –

+0

嗨, 感謝您的答覆,它看起來像他們回來的字符串,我已經改變爲浮動如下所述,似乎都工作正常。 乾杯, 大衛 乾杯, – user1166742

回答

3

確保您的值都是實際整數或浮點數,而不是字符串。將字符串求和可能會導致奇怪的行爲。

試試這個:

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

現在$銷售應該由一個浮動的。您可以使用(float)將該變量轉換爲浮動變量。

+0

嗨stefandoorn, 這工作完美,謝謝。 我會嘗試做一些閱讀現在我知道正確的術語來搜索。 親切的問候, 大衛 – user1166742

0

一般來說看一下typecasting,這對於作爲PHP開發人員的各種場景非常重要。

+0

嗨埃爾佐, 感謝您的提示,我會讀一讀。 乾杯, 大衛 – user1166742

0

的問題不在於$船是5.95 ..一個字符串,將正確地轉換爲浮動,但我認爲這是... 5,95,並且將被轉換爲5

<?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); 

,它應該工作!

+0

嗨rauschen, 感謝您的答覆,但價格確實回來了一個「。」第一種方法工作正常。 乾杯, – user1166742