PHP去除前导零和小数点后面的零

3
这属于“我相信有更简洁的方法”的范畴,虽然它完美地运作着。也许需要某种函数。
我有一些值的列表,如下: 01.0, 09.5, 10.0, 11.5,
我希望这些值始终排除前导零,并仅保留小数部分,如果它包含 .5 。永远不会有其他小数值。我的当前代码是:
$data = '09.5'; //just an example value

if (substr($data,0,1) == '0' ) {
    $data = substr($data, 1);
}
if (stripos($data, '.0') !== FALSE ) {
    $data = str_replace('.0','',$data);
}
print $data;

2
$data += 0;会去掉前导零。 - Marc B
你需要查看正则表达式和 preg_replace 函数。 - Andy Lester
1个回答

4

将其转换为浮点数:

$data = '09.5';
echo (float) $data; // 9.5

$data = '09.0';
echo (float) $data; // 9

$data = '010';
echo (float) $data;  // 10

演示

您还可以使用floatval()函数。

echo floatval($data);

我怀疑 OP 的例子:“永远不会有其他的十进制值”让我想到会有带前导零的“整数”字符串。 (float) '010' 当然是 8 - kojiro
我对此很好奇,但http://3v4l.org/INBiF证实了我的猜想,你的第二个例子仍然返回9.5。 - Ne Ma
我的第二个例子使用了09.0。它无法返回9.5。 - John Conde

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