php的sprintf函数的用法 控制浮点数格式


Posted in PHP onFebruary 14, 2014

控制浮点数打印格式

浮点数的打印和格式控制是sprintf 的一大常用功能,浮点数使用格式符”%f”控制,默认保留小数点后6 位数字,比如:

sprintf("%f", 3.1415926); //结果:"3.141593"

但,有时我们希望自己控制打印的宽度和小数位数,这时就应该使用:”%m.nf”格式,其中m 表示打印数字的整体宽度,n 表示小数点后的位数。比如:

sprintf(" %9.3f", 3.1415926); //右对齐:位数不够用空格补全。结果:"    3.142"
sprintf(" %-9.3f", 3.1415926); //左对齐:位数不够用空格补全。结果:"3.142    "
sprintf(" %.3f", 3.1415926); //不指定总宽度,结果:"3.142"

注意一个问题

$num = 100;
sprintf("%.2f", $num );
sprintf("%.2f", (double)$num);

上面的两个结果真的一样吗?虽然看起来是一样的,但是下面的原因,可能会有所启发.
原因是:参数压栈时调用者并不知道跟num相对应的格式控制符是个”%f”。而函数执行时函数本身则并不知道当年被压入栈里的是个整数,于是可怜的保存整数$num的那4个字节就被不由分说地强行作为浮点数格式来解释了,整个乱套了。
PHP 相关文章推荐
php 数组二分法查找函数代码
Feb 16 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
php metaphone()函数的定义和用法
May 15 PHP
Yii列表定义与使用分页方法小结(3种方法)
Jul 15 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
PHP基于进程控制函数实现多线程
Dec 09 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 #PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 #PHP
PHP COOKIE及时生效的方法介绍
Feb 14 #PHP
php递归使用示例(php递归函数)
Feb 14 #PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 #PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 #PHP
php中simplexml_load_string使用实例分享
Feb 13 #PHP
You might like
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
python调用shell的方法
2013/11/20 Python
Python验证码识别处理实例
2015/12/28 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
python3中str(字符串)的使用教程
2017/03/23 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Scrapy框架使用的基本知识
2018/10/21 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Python实现FLV视频拼接功能
2020/01/21 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
如何用python 操作zookeeper
2020/12/28 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
中学教师管理制度
2014/01/14 职场文书
网络技术专业求职信
2014/02/18 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
火锅店营销方案
2014/02/26 职场文书
护士毕业实习感言
2014/03/05 职场文书
协议书格式
2014/04/23 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
工伤事故证明
2014/10/20 职场文书