number_format()消除.06

时间:2017-01-12 22:31:05

标签: php regex numbers format

我无法使用number_format()

消除.06

我想做的是:

56.00 => 56

56.10 => 56.10

56.06 => 56

我是用正则表达式做的,但我不能消除它,也许我的陈述是错误的。

$num = 50.06;
$num = preg_replace("/\.0*$/",'',$num);

我需要你的帮助

提前致谢

4 个答案:

答案 0 :(得分:1)

正则表达式:

/\.0[0-9]+/

工作DEMO

所以:

$num1 = 50.06;
$num1 = preg_replace("/\.0[0-9]+/",'',$num1); //50

$num2 = 50.10;
$num2 = preg_replace("/\.0[0-9]+/",'',$num2); //50.1

参考:

答案 1 :(得分:0)

正确的正则表达式是 \.0[0-9]{1}$

preg_replace的最后一个参数是$ num

答案 2 :(得分:0)

这可能是愚蠢的,因为我已经厌倦并准备出发,但是:

if(($num - intval($num)) > .1) {
    $num = number_format($num, 2);
} else {
    $num = number_format($num, 0);
}

答案 3 :(得分:-3)

$num = 56.06; echo $num = number_format($num, 0);