我有这个浮点值1290.00
,我想用最干净的方式修剪右边的零来得到1290
,但如果使用trim
函数,为什么我得到129
?
代码:
<?php
$var = '1290.00';
printf ("value: %s -> %sn", $var, trim($var, '.00'));
输出:
value: 1290.00 -> 129
我看到了不使用修剪功能的不同解决方案,但为什么修剪不起作用?我也试过戈朗,得到了同样的行为。
Trim从末尾单独删除字符,而不是作为短语。它会删除所有找到的字符,直到在列表中找不到其他字符为止。所以它删除了0,0,句号,然后是0。在这种情况下,我建议使用round
或number_format
number_format($var, 0, '', ''); // 1290
trim
不能这样工作。只指定要修剪的字符一次,两个句点用于指定范围。然后,它将从结尾处修剪所有这些字符。
一种更有效的方法可能是intval($var)
根据您的使用情况,请注意number_format()
也会对值进行四舍五入(请参阅文档的第一个示例(。如果需要截断数字,可以使用floor()
:
number_format(1.9, 0, '', ''); // string(1) "2"
floor(1.9); // 1