四舍五入又能保留两位小数
private function setNum($num)
{
$int_num = $num * 100;//可能会有小数,所以将数字乘以100变成整数
$num_len = strlen($int_num);
//负数的减号会多占一个字符
if ($num < 0 ) $num_len = $num_len - 1;
//前面乘以了100,所以这里判断是否大于1亿是用10,不是8
if ($num_len > 10) {
//bcdiv是直接截取,不能四舍五入
//$num = bcdiv($num,100000000,2);
//round可以四舍五入,但是不保留小数位末尾的0
//$num = round($num/100000000,2);
//只有sprintf能够同时四舍五入,又能保留两位小数
$num = sprintf('%.2f',$num/100000000);
$num .= '亿';
} elseif ($num_len > 6) {
$num = sprintf('%.2f',$num/10000);
$num .= '万';
}
return $num;
}
扩展
ceil 天花板的意思,代表向上取整
floor 地板的意思,代表 向下取整