PHP 保留小数位数

最近做统计,涉及到数据小数位的问题,下面总结:

  • 第一种方式 round()
round($a, $num) 
//四舍五入保留小数a的小数点后num位 
//结果为浮点类型
//小数点位数不够,不会填充0
  • 第二种方式 floor($a) / 100
$a *= 100;
//先将小数扩大一百倍
//floor 向上取整 再 / 100
floor($a) / 100
//实现小数点后两位
//结果为浮点数
//小数点位数不够,不会填充0
  • 第三种方式 sprintf(’%.2f’, $a)
sprintf('%.2f',$a)
//强大的格式化函数
//结果为字符串
//小数点位数不够,填充0
  • 第四种方式 - 使用字符串函数切割(过于繁琐。。。)
strpos 获取小数点位置
substr 向小数点后位数切割
//结果为字符串类型
//小数点位数不够,不会填充 0
可以再使用字符串的填充函数手动补 0 

上代码

		$a = 0.5;
        $b = 0.33333333;
        $c = strval($b);
        $key = strpos($c,'.');
        var_dump(substr($c,0,$key+3));
        var_dump(sprintf('%.2f',$a));
        var_dump(sprintf('%.2f',$b));
        var_dump(round($b,2));
        var_dump(floor($b*100)/100);

输出结果:

string(4) "0.33"
string(4) "0.50"
string(4) "0.33"
float(0.33)
float(0.33)

你可能感兴趣的:(基础)