PHP四舍五入、取整、round函数使用示例
小数例子:
PHP保留两位小数并且四舍五入
$n=0.1265489; echosprintf("%.2f",$n);//0.13
大家可以看到我们用到了sprintf函数对$n进行了格式化%.2f是目标格式,其中2表示两位f表示float(浮点型)第3为小数6被四舍五入
再看个例子
$n=0.1265489 echosubstr(sprintf("%.3",$n),0,-1);//0.12
代码输出了保留2为小数没有四舍五入,实际上我们了解了sprintf的特性会四舍五入小数后我们多保留了一位,然后用substr来截取前2位
取整例子:
echoceil(4.1); //5 echoceil(9.999); //10
ceil函数是向上取整函数,什么叫向上呢?就是说如果超出一点点那就向前进一位如例子中4.1就变成了5。
跟它相反还有一个函数叫floor我们看看它的用法
echofloor(4.1); //4 echofloor(9.999);//9
floor的特性在第二个输出中显的特别明显,那就是不给你多少位小数哪怕是无限接近10也没有用向下取到的整数就是9。
round函数
<?PHP echoround(3.4); //3 echoround(3.5); //4 echoround(3.6); //4 echoround(3.6,0); //4 echoround(1.95583,2); //1.96 echoround(1241757,-3);//1242000 echoround(5.045,2); //5.05 echoround(5.055,2); //5.06 ?>
round函数在PHP手册中的说明是:
floatround(float$val[,int$precision=0[,int$mode=PHP_ROUND_HALF_UP]])
返回将val根据指定精度precision(十进制小数点后数字的数目)进行四舍五入的结果。precision也可以是负数或零(默认值)。
round的参数一是数据源,参数二是要保留的小数位而且之后一位(比如你输入2那么第3为是之后一位)被四舍五入,当他是负数的时候,从数据源最后一位开始往前数相应的长度制0并将最后一位四舍五入比如round(123456,-2)就是123456从6开始往前数两位都变成零,并且最后一位5(从后往前数第一位是6最后一位是5)被四舍五入,输出123500