在php中按小数点拆分数字
在php中如何将数字除以小数点 我得到$num=15/4;将$num转换为3.75。我想把3和75部分分开,所以$int=3和$dec=75。我的非工作代码是:在php中按小数点拆分数字,php,split,Php,Split,在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 提前谢谢。试试看 $num = 15/4; // or $num = 3.75; list($int, $dec) = explode('.', $num); 因为
$num = 15/4; // or $num = 3.75;
list($int, $dec) = split('.', $num);
但这会导致空$int和$dec
提前谢谢。试试看
$num = 15/4; // or $num = 3.75;
list($int, $dec) = explode('.', $num);
因为您实际上不需要使用基于正则表达式的拆分。作为“.”字符不适用于您,需要转义以提供文字匹配
$int = $num > 0 ? floor($num) : ceil($num);
$dec = $num - $int;
当$num
为负值时(与其他答案一样),如果希望$dec
为正值,可以执行以下操作:
$dec = abs($num - $int);
如果分解该数字的十进制表示形式,则会丢失精度。如果你不介意的话,那就随它去吧(这对于文本表示没关系)。考虑区域设置!我们比利时人使用逗号(至少非编程的:) 如果您不介意(例如用于计算),您可以使用
floor
功能:
$num = 15/4
$intpart = floor( $num ) // results in 3
$fraction = $num - $intpart // results in 0.75
注意:这是正数。对于负数,您可以反转符号,使用正数方法,然后重新生成整数部分的符号。如果您不想失去精度,可以使用以下方法:
$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
负数计算失败,例如,如果$num=-17.3,那么$int=18和$dec=0.7请注意,这样做确实会降低精度-不要以此为基础进行计算。巴西人还使用逗号表示十进制分隔符,句点表示千分之一分隔符。用于确定您所在地区的正确分隔符是什么。爱尔兰人和巴西人没有太大区别:)。有人真的应该为此编写一个库。请对你的答案多解释一些。
$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