题
如何在php中按小数点分割数字?
我有$ num = 15/4;将$ num变为3.75。我想拆分3和75部分,所以$ int = 3和$ dec = 75.我的非工作代码是:
$num = 15/4; // or $num = 3.75;
list($int, $dec) = split('.', $num);
但结果是空的$ int和$ dec。
提前致谢。
解决方案
如果 explode
数字的十进制表示,则会丢失精度。如果你不介意,那就这样吧(这对于文本表示来说是可以的)。考虑到区域设置!我们比利时人使用逗号(至少是非编程的:)。
如果你做介意(例如用于计算),你可以使用 floor
函数:
$num = 15/4
$intpart = floor( $num ) // results in 3
$fraction = $num - $intpart // results in 0.75
注意:这是正数。对于负数,您可以反转符号,使用正方法,并重新转换int部分的符号。
其他提示
$num = 15/4; // or $num = 3.75;
list($int, $dec) = explode('.', $num);
$int = $num > 0 ? floor($num) : ceil($num);
$dec = $num - $int;
如果您希望 $ dec
为 $ num
为正(如其他答案),您可以这样做:
$dec = abs($num - $int);
$num = 3.75;
$fraction = $num - (int) $num;
$num = 15/4;
substr(strrchr($num, "."), 1)
如果您不想丢失精度,可以使用以下方法:
$number = 10.10;
$number = number_format($number, 2, ".", ",");
sscanf($number, '%d.%d', $whole, $fraction);
// you will get $whole = 10, $fraction = 10
这适用于正数和负数:
$num = 5.7;
$whole = (int) $num; // 5
$frac = $num - (int) $num; // .7
不隶属于 StackOverflow