仅当number为float时才附加零

时间:2013-12-18 12:29:35

标签: php regex

我想在数字的末尾附加零,但有些情况下不需要它。例如,

150.1 //output should be 150.10
150.0 //output should be 150
150.00 //output should be 150
150.01 //output should be 150.01
150.10 //output should be 150.10

因此,如果该号码有..后只有一位数且该数字不是0,那么我想在最后附加0否则我想将其显示为十进制数。我认为需要一个正则表达式来解决这个问题,但我不擅长它,所以任何帮助都非常感激。

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

if (intval($numberToTest) != $numberToTest) {
   $numberFormated = number_format($numberToTest, 2);
}

答案 1 :(得分:1)

将数字格式化为两个尾随零,然后使用正则表达式删除模式 - .后跟一个或多个零。这样做的一个小功能:

function clean_num($num) {
        $num = number_format($num, 2, '.', '');
        return preg_replace('~\.0*$~', '', $num);
}

测试用例:

$numbers = array('150.1','150.0','150.00','150.01','150.10');
foreach ($numbers as $number) {
    echo clean_num($number).'<br>';
}

输出:

150.10
150
150
150.01
150.10