我尝试使用php函数从php变量中删除零数,但不起作用。
我尝试使用round
或floor
或ceil
,但无效。
我该怎么做?
2.00 ===> 2
2.05 ===> 2.05 (not remove zero)
2.50 ===> 2.5
2.55 ===> 2.55 (not remove zero)
答案 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)
有趣的是,测试(float) 2.00 === 2
实际上没有通过,这是因为2
实际上是(int)
类型,因此无法通过===
测试但是,正如您所看到的,输出正是您所寻找的。 p>
答案 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