如何在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)
这适用于正数和负数:
$num = 5.7;
$whole = (int) $num; // 5
$frac = $num - (int) $num; // .7
如果您不想失去精度,可以使用这些:
$number = 10.10;
$number = number_format($number, 2, ".", ",");
sscanf($number, '%d.%d', $whole, $fraction);
// you will get $whole = 10, $fraction = 10