我這個小爆炸過程:爲什麼爆炸函數轉換值?
$var = 120.180;
$var = explode("." , $var);
$var1 = $var[0];
$var2 = $var[1];
echo $var1;
echo $var2;
回聲:
120和18,爲什麼呢?爲什麼180轉換爲18,我該如何解決?
我這個小爆炸過程:爲什麼爆炸函數轉換值?
$var = 120.180;
$var = explode("." , $var);
$var1 = $var[0];
$var2 = $var[1];
echo $var1;
echo $var2;
回聲:
120和18,爲什麼呢?爲什麼180轉換爲18,我該如何解決?
因爲120.180不是一個字符串,它是一個數字。因此120.180將變成120.18 - 因爲零是浮點值。你會發現只是回顯120.180仍然會產生120.18。
如果您確實$var = "120.180";
,I.E.在數字周圍使用了引號,你會得到你期待的結果。
與$ var當成一個字符串再試一次:
$var = '120.180';
但爲什麼輸出是120和18與原始代碼? –
yes解決了gread謝謝 – user2999787
因爲$ var = 120.180;是一個數字和$ var [1]將是小數部分... –
你不能修復它。它打破了開始。而是從不同的事物開始。
$var = '120.180';
$var = explode("." , $var);
$var1 = $var[0];
$var2 = $var[1];
echo $var1;
echo $var2;
把值引號使用$ var當成一個字符串:
$var = '120.180';
現在你節省120.180一些浮點值,這將減少尾隨零。
$var
不包含您的期望。請看下面的代碼:
$var = 120.180;
var_dump($var);
這將輸出float(120.18)
- 你可以看到,它去掉了零了。這就是數字如何存儲在PHP中。
如果要保留0
s,請將該號碼存儲爲字符串。
$var = '120.180';
這實際上回答了問題,而不是僅僅提供一個解決方案,多餘的可能是一個不正確的詞,在這裏它擺脫了'0',因爲它的浮動值...所以php舍入到'120.18' –
Thanks @ Mr.Alien - 修正。 – George