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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值