我尝试使用php函数从php变量中删除零数字,但无法工作。如何从php变量中删除0(零数字)?
我尝试使用round
或floor
或ceil
但不起作用。
我该怎么做?
2.00 ===> 2
2.05 ===> 2.05 (not remove zero)
2.50 ===> 2.5
2.55 ===> 2.55 (not remove zero)
我尝试使用php函数从php变量中删除零数字,但无法工作。如何从php变量中删除0(零数字)?
我尝试使用round
或floor
或ceil
但不起作用。
我该怎么做?
2.00 ===> 2
2.05 ===> 2.05 (not remove zero)
2.50 ===> 2.5
2.55 ===> 2.55 (not remove zero)
您必须有字符串变量。请将其转换为浮动状态(浮动)$ var,如果打印出结果,则将丢失这些零。
其他选项是对字符串使用rtrim删除0和。从最后。看到这里http://php.net/rtrim
修剪将删除所有前导零:'2 === trim(200,'0');' – Mike
例子试试这个:
$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
什么是'double' php命令? –
@robertdewere - 有关更深入的解释和链接,请参阅下面的答案。 – Mike
试试这个:
number_format((float)$your_number, 2, '.', '');
我有同样的问题。函数number_format()将数字作为字符串返回,因此它不会在末尾移除零。
$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
在PHP中,你可以cast值的Float Type(双,浮法,真正的),这将下降(后十进制)所有前导或尾随零。
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)
类型,并因此通过===
测试失败,但是,正如您所看到的,输出结果正是您正在查找的内容。
floor/ceil不能在2.50上工作,因为这在数学上不正确(会给你2或3)。 – Maximus2012
请向我们展示您的**完整**和**真实**代码和您的尝试 – Rizier123
看看是否有帮助:http://stackoverflow.com/questions/5149129/how-to-strip-trailing-zeros-in- php – Maximus2012