如何从php变量中删除0(零数字)?

时间:2015-04-24 14:19:17

标签: php

我尝试使用php函数从php变量中删除零数,但不起作用。

我尝试使用roundfloorceil,但无效。

我该怎么做?

2.00 ===> 2
2.05 ===> 2.05 (not remove zero)
2.50 ===> 2.5
2.55 ===> 2.55 (not remove zero)

5 个答案:

答案 0 :(得分:0)

您必须拥有字符串变量。请将它转换为float(float)$ var,如果打印出结果,则会丢失这些零。

其他选项是在字符串上使用rtrim来删除0和。从最后。请参阅此处的示例http://php.net/rtrim

答案 1 :(得分:0)

试试这个:

$list = array("2.00", "2.05", "2.50", "2.55");
foreach($list as $val)
   echo (double) $val . "</br>";

输出:

2
2.05
2.5
2.55

答案 2 :(得分:0)

试试这个:

number_format((float)$your_number, 2, '.', '');

我遇到了同样的问题。函数 number_format()将数字作为字符串返回,因此最后不会删除零。

答案 3 :(得分:0)

在PHP中,您可以cast将值Float Type(double,float,real),这将丢弃所有前导零或尾随零(小数点后)。

2.5 === (double) "2.50"

但请注意,除了删除0之外,这不会格式化您的号码(这不能确保货币格式)。有关格式设置,请参阅number_format()

2.5 === (double) number_format('2.501', 2, '.', '');

示例:

(float) 2.00 === 2
(float) 2.05 === 2.05 // (not remove zero)
(float) 2.50 === 2.5
(float) 2.55 === 2.55 // (not remove zero)

并证明:http://ideone.com/wimBHm

有趣的是,测试(float) 2.00 === 2实际上没有通过,这是因为2实际上是(int)类型,因此无法通过===测试但是,正如您所看到的,输出正是您所寻找的。

答案 4 :(得分:-1)

$price = '2.00';
$price2 = '2.50';
$price3 = '2.05';

function formatPrice($price)
{
   /* Format number with 2 decimal places, then remove .00, then right trim any 0 */
   return rtrim(str_replace('.00', '', number_format($price, 2)), '0');
}

echo formatPrice($price); //2
echo formatPrice($price2); //2.5
echo formatPrice($price3); //2.05