2013-11-22 86 views
-1

我這個小爆炸過程:爲什麼爆炸函數轉換值?

$var = 120.180; 
$var = explode("." , $var); 
$var1 = $var[0]; 
$var2 = $var[1]; 

echo $var1; 
echo $var2; 

回聲:

120和18,爲什麼呢?爲什麼180轉換爲18,我該如何解決?

回答

5

因爲120.180不是一個字符串,它是一個數字。因此120.180將變成120.18 - 因爲零是浮點值。你會發現只是回顯120.180仍然會產生120.18。

如果您確實$var = "120.180";,I.E.在數字周圍使用了引號,你會得到你期待的結果。

+0

這實際上回答了問題,而不是僅僅提供一個解決方案,多餘的可能是一個不正確的詞,在這裏它擺脫了'0',因爲它的浮動值...所以php舍入到'120.18' –

+0

Thanks @ Mr.Alien - 修正。 – George

1

與$ var當成一個字符串再試一次:

$var = '120.180'; 
+1

但爲什麼輸出是120和18與原始代碼? –

+0

yes解決了gread謝謝 – user2999787

+0

因爲$ var = 120.180;是一個數字和$ var [1]將是小數部分... –

0

你不能修復它。它打破了開始。而是從不同的事物開始。

$var = '120.180'; 
$var = explode("." , $var); 
$var1 = $var[0]; 
$var2 = $var[1]; 

echo $var1; 
echo $var2; 
2

把值引號使用$ var當成一個字符串:

$var = '120.180'; 

現在你節省120.180一些浮點值,這將減少尾隨零。

1

$var不包含您的期望。請看下面的代碼:

$var = 120.180; 
var_dump($var); 

這將輸出float(120.18) - 你可以看到,它去掉了零了。這就是數字如何存儲在PHP中。

如果要保留0 s,請將該號碼存儲爲字符串。

$var = '120.180';