1.不进位的情况

比如3.149569取小数点后两位,最后两位不能四舍五入。结果:3.14。

可以使用 floor 函数

该函数是舍去取整。例如,floor(4.66456) 结果:4 。

floor(9.1254) 结果9 。

因此,去小数点后两位,需要先乘以100,然后舍去取整,再除以100,即:

$a=floor(3.149569*100)/100

这时浮点计算会出现一个bug,通过PHP的无类型特性来解决这个问题,先strval转成字符串,再自动识别类型。下面计算百分比已经使用上strval()函数了

计算百分比

$successRate = floor(strval((2/3)*10000))/10000*100;$result = $successRate.'%';

2.四舍五入的情况

round 函数

float round ( float val [, int precision])

返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。

precision 也可以是负数或零(默认值)。

<?phpecho round(3.4);         // 3echo round(3.5);         // 4echo round(3.6);         // 4echo round(3.6, 0);      // 4echo round(1.95583, 2);  // 1.96echo round(1241757, -3); // 1242000echo round(5.045, 2);    // 5.04echo round(5.055, 2);    // 5.06

sprintf 函数

实现四舍五入,并且如果是不带小数位数的,会自动用指定的字符(指定的0)补至指定的小数位数

echo sprintf("%01.2f", 5.228);  //  5.23echo sprintf("%01.2f", 5.224);  //  5.22echo sprintf("%01.2f", 5);      //  5.00

number_format 函数

如果是不带小数位数的,会自动用0补至指定的小数位数

echo number_format(5.228,2);    //  5.23echo number_format(5.224,2);    //  5.22echo number_format(5,2);        //  5.00

round 函数

此函数可以实现四舍五入,但是如果是不带小数位数的,处理后也不带小数数位

echo round(5.228,2);    //  5.23echo round(5.224,2);    //  5.22echo round(5,2);        //  5

php进一法取整

echo ceil(4.4);     //  5echo ceil(4.6);     //  5

php舍去法取整

echo floor(4.4);        //  4echo floor(4.6);        //  4

相关教程推荐:《PHP教程》

更多相关文章

  1. 直击PHP array_reverse() 函数原理及实例解析
  2. 示例PHP实现单文件、多个单文件、多文件上传函数的封装
  3. 探秘PHP number_format函数原理及实例解析
  4. 详解在PHP模板引擎smarty生成随机数的方法和math函数
  5. 解析PHP vsprintf()函数格式化字符串操作原理
  6. PHP如何自定义的 printf 函数
  7. 学习php中利用explode函数分割字符串到数组
  8. PHP使用Closure创建匿名函数的方法介绍
  9. php in_array函数用法(实例)

随机推荐

  1. Android消息推送实现
  2. Weex 04 Weex中Android项目的生成和交互
  3. android TextView属性大全(转)
  4. Android(安卓)如何在代码中动态的添加Vie
  5. android设备连接到pc进行应用程序调试
  6. 使用Kotlin开发android学习记录(一)
  7. Android 游戏开发的一些基础和个人经验
  8. Android - 图解向 Android Studio 中导入
  9. android Glide简单使用
  10. 在Android平台上实现条型码扫描与识别