正确地去除带有小数的前导零,例如0.1。

3

我想要去掉前导零,就像这样:

echo ltrim(000.1, '0'); // .1 (should end up as 0.1)
echo ltrim(0, '0'); // empty (should end up as 0)
echo ltrim(00005.5, '0'); // 5.5 (correct)

使用 ltrim() 函数可以处理像 00005.5 这样的值,但对于像 0.1 这样的值,则不能正确移除前导零(根据逻辑应该得到的是 0)。

我的问题是,如何移除类似 0.5 的值中的前导零,并在值为 0 时避免删除其内容?


echo floatval(000.1); -> 0.1(对于其他值也是一样的) - Jeff
你对_should_的定义很奇怪。你有函数参考手册吗? - marekful
如果你正在处理数字,而不是字符串(就像上面的例子一样),那么这些都是不必要的。000.1 就是 0.100005.5 就是 5.5 - Patrick Q
@marekful,我用“should”指的是“我的目标是”。 - Henrik Petterson
@marekful ...@marekful... - Henrik Petterson
显示剩余3条评论
1个回答

4

只需将其与1相乘,PHP就会将其转换为浮点数。

echo "000.1"*1 . "\n";  //0.1
echo "0"*1 . "\n";      //0 
echo "00005.5"*1 . "\n";//5.5

https://3v4l.org/mnN56

或者将其转换为浮点型

echo (float)"000.1" . "\n";
echo (float)"0" . "\n";
echo (float)"00005.5" . "\n";

有趣。这种情况下是否存在任何不起作用的场景? - Henrik Petterson
不是我知道的。可能如果您实际输入了像“hello world”这样的字符串。 - Andreas
1
啊,我认为浮点数转换听起来更易读。谢谢! - Henrik Petterson
1
做一个 +0 也可以,对于整数也是如此。但是你也可以做 (int)"002" ... 所以我想这更多是个人喜好。 - IncredibleHat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接