Graent.Hu 的博客

新浪微薄腾讯微薄

最新碎语:最近感觉有些迷茫,怎么办~

您的位置:Graent.Hu 的博客 >PHP编程> php保留小数点后两位的几种方法

php保留小数点后两位的几种方法

这个是比较基础的东西了算是,虽说不难,但是希望能对一些人有帮助吧:

1,经常用到小数点后取几位,但不能进位的情况。
比如3.149569取小数点后两位,最后两位不能四舍五入。结果:3.14。

可以使用函数floor。
该函数是舍去取整。例如,floor(4.66456) 结果:4 。
floor(9.1254) 结果9 。

因此,去小数点后两位,需要先乘以100,然后舍去取整,再除以100,即:
$a=floor(3.149569*100)/100

计算百分数:

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

输出结果:
66.67%

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
?>

注意:
在对正好一半的分数进行舍入时 round() 在偶数次舍去,在奇数次进位。

如果想迫使它对 .5(或 .05)总向一个方向舍入,加上或减去一个很小的因子。

对一半值舍去对另一半值进一的背后原因是避免传统的银行问题,即如果总是舍去则银行从顾客那里多拿了钱,如果总是进一则银行最终会损失了钱。
对此平均舍入则在统计上达到了平衡。
 
3,sprintf函数

最后一种是使用sprintf函数

定义和用法
sprintf() 函数把格式化的字符串写写入一个变量中。

语法
sprintf(format,arg1,arg2,arg++)

参数 描述
 

format 必需。转换格式。
arg1 必需。规定插到 format 字符串中第一个 % 符号处的参数。
arg2 可选。规定插到 format 字符串中第二个 % 符号处的参数。
arg++ 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。

说明

参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束。

以下是可能的 format 值:
 

%% - 返回百分比符号
%b - 二进制数
%c - 依照 ASCII 值的字符
%d - 带符号十进制数
%e - 可续计数法(比如 1.5e+3)
%u - 无符号十进制数
%f - 浮点数(local settings aware)
%F - 浮点数(not local settings aware)
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)

 

arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

提示和注释
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符插到 % 符号后面,由数字和 "\$" 组成。

提示:
相关函数:fprintf()、printf()、vfprintf()、vprintf() 以及 vsprintf()。

我的微信:graent_hu

欢迎扫码加我和微信好友,有什么问题我们可以一起探讨,有什么需要也随时欢迎发消息给我~

转载请注明出处:

本文标题:php保留小数点后两位的几种方法

本文链接:https://www.wlyc.cn/post-59.html

发表评论

路人甲 表情
看不清楚?点图切换