小数例子:
PHP 保留两位小数并且四舍五入
- $n=0.1265489;
- echo sprintf("%.2f", $n); //
- 0.13
大家可以看到我们用到了 sprintf 函数对 $n 进行了格式化 %.2f 是目标格式, 其中 2 表示两位 f 表示 float(浮点型) 第 3 为小数 6 被四舍五入
再看个例子
- $n=0.1265489
- echosubstr(sprintf("%.3f",$n),0,-1);//
- 0.12
代码输出了保留 2 为小数没有四舍五入, 实际上我们了解了 sprintf 的特性会四舍五入小数后我们多保留了一位, 然后用 substr 来截取前 2 位
取整例子:
- echo ceil(4.1); //
- 5
- echo ceil(9.999); //
- 10
ceil 函数是向上取整函数, 什么叫向上呢? 就是说如果超出一点点那就向前进一位如例子中 4.1 就变成了 5.
跟它相反还有一个函数叫 floor 我们看看它的用法
- echo floor(4.1); //
- 4
- echo floor(9.999); //
- 9
floor 的特性在第二个输出中显的特别明显, 那就是不给你多少位小数哪怕是无限接近 10 也没有用向下取到的整数就是 9.
round 函数
- <?PHP
- echo round(3.4); //
- 3
- echo round(3.5); //
- 4
- echo round(3.6); //
- 4
- echo round(3.6,0); //
- 4
- echo round(1.95583,2); //
- 1.96
- echo round(1241757,-3); //
- 1242000
- echo round(5.045,2); //
- 5.05
- echo round(5.055,2); //
- 5.06
- ?>
round 函数在 PHP 手册中的说明是:
float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果. precision 也可以是负数或零(默认值).
round 的参数一是数据源, 参数二是要保留的小数位而且之后一位 (比如你输入 2 那么第 3 为是之后一位) 被四舍五入, 当他是负数的时候, 从数据源最后一位开始往前数相应的长度制 0 并将最后一位四舍五入比如 round(123456,-2) 就是 123456 从 6 开始往前数两位都变成零, 并且最后一位 5(从后往前数第一位是 6 最后一位是 5)被四舍五入, 输出 123500
来源: