文档章节

PHP_小数/四舍五入/上进/下取等

喵王不瞌睡
 喵王不瞌睡
发布于 2015/02/05 16:10
字数 536
阅读 134
收藏 2

小数例子:


PHP保留两位小数并且四舍五入

$n=0.1265489;
echo sprintf("%.2f", $n); // 0.13

大家可以看到我们用到了sprintf函数对$n进行了格式化%.2f是目标格式,其中2表示两位f表示float(浮点型) 第3为小数6被四舍五入

再看个例子


$n=0.1265489
echo substr(sprintf("%.3",$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


本文转载自:http://www.phpla.com/essay/37

共有 人打赏支持
喵王不瞌睡
粉丝 11
博文 168
码字总数 51104
作品 0
浦东
个人站长
私信 提问
hive数字处理

在hive中,两个字段做除法,如何取得想要的小数位数。 如果非科学计数法,比如1/3,没有0,所有就不会存在科学计数法,所以如果想要取多少位,直接round(1/3,2)即可。 如果是科学计数法,比如...

cjun1990
2016/12/17
113
0
js 实现四舍五入&fixed方法异常处理

JS四舍五入的函数:toFixed(n),n为要保留的小数位数,n取0~20。 问题:当n超过20的时候,JS会出错。 举例一: 输出结果:10.01 举例二: 输出结果:0.00 解决方案: (一)对JS中的Numbe...

荆瑶
2016/10/31
15
0
PHP 小数 有效位数 四舍五入 处理

PHP浮点数保留两位小数, 四舍五入,取整(进一法,舍去法) php保留两位小数(不四舍五入) $float = 1999.685039370079;echo sprintf("%.2f",substr(sprintf("%.3f", $float), 0, -2)); php保留两...

淡水鱼
2013/02/03
0
0
Oracle中trunc函数、round 函数、ceil函数和floor函数的使用

1.1trunc函数处理数字 trunc函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。 其具体的语法格式如下 TRUNC(num...

qhaiyan
2016/03/11
27
0
对 java 数字小数点后位数进行处理

一、返回 String 类型数据 对数据进行处理后,返回 String 类型数据,可以通过如下方式进行处理: DecimalFormat 对数据格式化 String.format 对数据格式化 两者达到的效果是一样的。 补充:...

pding
05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS官方钱包keosd

EOS官方钱包的名称是keosd,它负责管理你的私钥,并且帮你进行交易的签名。 不过不幸的是,keosd钱包对普通用户并不友好,它是一个命令行程序,目前还没有像以太坊的mist那样的图形化界面,而...

汇智网教程
45分钟前
2
0
ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
今天
2
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
5
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部