我这个小爆炸过程:为什么爆炸函数转换值?
$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