PHP对小数进行取整,有以下四种方法:
- intval() 舍弃小数,只保留整数位
- round() 四舍五入进行取整
- ceil() 向上取整,有小数位就加一 返回不小于当前数的下一个整数
- floor() 向下取整,有小数位就减一 返回不大于当前数的下一个整数
对于intval()函数:
$n=3.1415926;
$n1=5.666666;
echo intval($n);
echo intval($n1);
//3 5
实际上就等同于:
$n=3.1415926;
echo (int)$a;
如果通过运算符实现:
echo $a-($a-(int)$a);
对于两个浮点数相减后的结果如果没有小数位,PHP会自动对其取整。
round()四舍五入:
$n=1.885;
$n1=3.356;
echo round($n);
echo round($n1);
//2 3
四舍五入通过运算符来实现:
function myRound($n){
$n=($n-(int)$n)>=0.5 ? $n-($n-(int)$n)+1 : $n-($n-(int)$n);
}
echo myRound(5.56);
echo myRound(15.12);
//6 15
ceil() 向上取整:
$n=5.66;
$n1=96.23;
echo ceil($n);
echo ceil($n1);
//6 97
通过运算符实现:
function myCeil($n){
$n=$n-(int)$n<>0 ? (int)$n+1 : $n;
echo $n;
}
echo myCeil(3.00000001);
//4
floor() 向下取整:
$n=3.000;
$n1=5.00000001;
echo floor($n);
echo floor($n1);
//3 5
通过运算符实现:
function myFloor($n){
$n=(int)$n-($n-(int)$n);
return $n;
}
echo myFloor(15.0000);
echo myFloor(152.366);
//15 152
Comments NOTHING