php四舍五入函数round和ceil用法区别介绍

时间:2016-10-06
php round函数对浮点数进行四舍五入,该函数有两个参数,第二个参数可以指定精度。ceil函数严格的说并不是四舍五入,它只是返回不小于该数值的下一个整数。本文章向大家介绍php四舍五入函数round和ceil用法和实例,需要的朋友可以参考一下。

round函数

round() 函数对浮点数进行四舍五入

语法:

float round ( float val [, int precision] )

返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。

实例:

<?php
    /*by http://www.manongjc.com */
    $number = round(11.1); // 11
    $number = round(11.9); // 12
    $number = round(11.5); // 12
    $number = round(11); // 11

    $a = round(4.4999); // 4
    $b = round(4.123456, 3); // 4.123
    $c = round(4.12345, 4); // 4.1235
    $d = round(1000 / 160); // 6
?>

round()函数进位问题

今天写程序时发现PHP四舍五入函数round没有把0.5进位,查了下资料发现如下解释:

在对正好一半的分数进行舍入时 round() 在偶数次舍去,在奇数次进位。如果你想迫使它对 .5(或 .05)总向一个方向舍入,加上或减去一个很小的因子。对一半值舍去对另一半值进一的背后原因是避免传统的银行问题,即如果总是舍去则银行从顾客那里多拿了钱,如果总是进一则银行最终会损失了钱。对此平均舍入则在统计上达到了平衡。 

如需强制进位的解决方案

function stdround($num, $d=0){
   return round($num + 0.0001 / pow(10, $d), $d);
} 

ceil函数

ceil() 函数向上舍入为最接近的整数。

语法:

ceil(x);

返回不小于 x 的下一个整数,x 如果有小数部分则进一位。

ceil() 返回的类型仍然是 float。

实例:

<?php
    /*by http://www.manongjc.com/article/1532.html */
    $number = ceil(11.9); // 12
    $number = ceil(11.1); // 12
    $number = ceil(11); // 11
?>