今天被问到了四舍六入的问题,好吧,第一次听说.后来查询之后说是银行家算法用的
摘自PHP官方文档.http://php.net/manual/zh/function.round.php (PHP 4, PHP 5, PHP 7) round — 对浮点数进行四舍五入 说明 float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] ) 返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。 Note: PHP 默认不能正确处理类似 "12,300.2" 的字符串。见字符串转换为数值。 参数 val 要处理的值 precision 可选的十进制小数点后数字的数目。 mode 以下之一: PHP_ROUND_HALF_UP、 PHP_ROUND_HALF_DOWN PHP_ROUND_HALF_EVEN 或 PHP_ROUND_HALF_ODD 返回值 四舍五入后的值
round函数可以接受1-3个参数.其中第1个参数为浮点值,第2个参数为保留小数点后的位数,第3个参数为模式.其中第2和第3个参数为可选项.
Notice:round()函数不可以处理字符串类型,在处理前请转换为数值.
Notice:第2个参数不填写则默认为0,此时只返回四舍五入后的整数部分.
<?php echo round(9.5, 0, PHP_ROUND_HALF_UP); // 10 echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9 echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10 echo round(9.5, 0, PHP_ROUND_HALF_ODD); // 9 echo round(8.5, 0, PHP_ROUND_HALF_UP); // 9 echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8 echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8 echo round(8.5, 0, PHP_ROUND_HALF_ODD); // 9 ?>
PHP_ROUND_HALF_UP: 该模式将进行四舍六入,遇5进1
PHP_ROUND_HALF_DOWN: 该模式将进行四舍六入,遇5不舍弃
PHP_ROUND_HALF_EVEN: 该模式将四舍六入,整数部分为奇数则进1
PHP_ROUND_HALF_ODD: 该模式将四舍六入,整数部分为偶数则进1