php 如何去掉数字末尾的0

比如5.20->5.2 , 5.00->5 ,0.50->0.5

阅读 6.1k
5 个回答

哪儿有那么麻烦,如果是浮点数类型,默认就不会显示后面的0。即

echo 0.10;
// 0.1

输入 0.10 实际显示就是 0.1 ,如果是字符串的,才会保留,即

echo '0.10';
// 0.10

知道了这个条件,因为 PHP 是弱类型,那就直接进行数学运算把他变成数字就好了,最简单的,+0

echo '0.10' + 0;
// 0.1

如果我有一个数组需要批量处理呢?这时候就可以配合 array_map 和 floatval 函数了。

$arr = [1.10,2.20,'3.010','4.10'];

$result = array_map('floatval',$arr);

var_dump($result);

/**
array(4) {
    [0] =>
    double(1.1)
    [1] =>
    double(2.2)
    [2] =>
    double(3.01)
    [3] =>
    double(4.1)
  }

*/

参考资料

对于php来说,你只需要考虑数字字符串,数字变量会自动处理0位,如下所示

function z($number)
{
    if (is_string($number)) {
        $tmp = rtrim($number, '0');
        return rtrim($tmp, '.');
    }
    return $number;
}

测试

foreach (['5.20', '5.00', '0.50', '0.00',0.00] as $v) {
    echo z($v), '---';
}

效果

5.2---5---0.5---0---0---

number_format($number,1)

随便搜一下,第一条结果就是了,最基础的操作了。

楼上各位大佬回答的很好,我再加几样处理的方法

$str = '1.20';
echo sprintf('%.1f', $str) . PHP_EOL;

echo rtrim($str, 0) . PHP_EOL;
新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题