如何在PHP中截断小数?

chr*_*don 5 php truncate

我知道PHP函数,floor()但这不是我想要的负数.

这是地板的工作原理

floor( 1234.567); //  1234
floor(-1234.567); // -1235
Run Code Online (Sandbox Code Playgroud)

这就是我要的

truncate( 1234.567); //  1234
truncate(-1234.567); // -1234
Run Code Online (Sandbox Code Playgroud)

是否有返回-1234的PHP函数?

我知道我可以这样做,但我希望有一个内置功能

$num = -1234.567;
echo $num >= 0 ? floor($num) : ceil($num);
Run Code Online (Sandbox Code Playgroud)

Man*_*dav 14

intval

intval(1234.567);
intval(-1234.567);
Run Code Online (Sandbox Code Playgroud)


pab*_*rsk 7

以特定精度截断浮点数:

echo bcdiv(2.56789, 1, 1);  // 2.5
echo bcdiv(2.56789, 1, 3);  // 2.567
echo bcdiv(-2.56789, 1, 1); // -2.5
echo bcdiv(-2.56789, 1, 3); // -2.567
Run Code Online (Sandbox Code Playgroud)

这种方法解决了round()功能问题。

  • 如果您有要打开的库,这很好,否则您将收到致命错误:“调用未定义的函数 bcdiv()” (2认同)