【发布时间】:2013-06-29 19:07:46
【问题描述】:
我知道 PHP 函数 floor(),但这在负数中不起作用。
这就是地板的工作原理
floor( 1234.567); // 1234
floor(-1234.567); // -1235
这就是我想要的
truncate( 1234.567); // 1234
truncate(-1234.567); // -1234
有没有返回 -1234 的 PHP 函数?
我知道我可以做到这一点,但我希望有一个内置函数
$num = -1234.567;
echo $num >= 0 ? floor($num) : ceil($num);
【问题讨论】:
-
我不认为有一个......为什么要打扰那几个字符?你这行的意图很明确。
-
number_format($num, 0, '', '');? -
@Ohgodwhy 我刚刚尝试了 number_format 方式,它实际上像
floor()函数一样返回-1235。奇怪! -
为什么要避免你提到的单行解决方案?当然,如果这是您的目标,您可以将其包装到一个函数中,但是根据 PHP 对可用数学函数的定义,根据符号测试地板或天花板是否是正确的操作是合适的方法。
-
@chrislondon 最好使用 (int) 类型转换。看我的回答。