php保留两位小数

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 也可以是负数或零(默认值)。

复制代码
复制代码
<?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.04

echo round(5.055, 2);    // 5.06
复制代码

 sprintf 函数

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

复制代码
echo sprintf("%01.2f", 5.228);  //  5.23

echo sprintf("%01.2f", 5.224);  //  5.22

echo sprintf("%01.2f", 5);      //  5.00

 number_format 函数

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

复制代码
echo number_format(5.228,2);    //  5.23

echo number_format(5.224,2);    //  5.22

echo number_format(5,2);        //  5.00

  round 函数

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

复制代码
echo round(5.228,2);    //  5.23

echo round(5.224,2);    //  5.22

echo round(5,2);        //  5

  php进一法取整

复制代码
echo ceil(4.4);     //  5

echo ceil(4.6);     //  5

  php舍去法取整

复制代码
echo floor(4.4);        //  4

echo floor(4.6);        //  4

 

posted @   牛奔  阅读(12010)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示