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 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
mysql5详细安装教程
Jan 15 PHP
深入php socket的讲解与实例分析
Jun 13 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
Feb 28 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
thinkphp5实现无限级分类
Feb 18 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 PHP
基于PHP的登录和注册的功能的实现
Aug 06 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
使用数据库保存session的方法
2006/10/09 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
关于COOKIE个数与大小的问题
2011/01/17 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
Python标准库内置函数complex介绍
2014/11/25 Python
Python实现简单状态框架的方法
2015/03/19 Python
Python实现简单登录验证
2016/04/13 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
Django REST 异常处理详解
2020/07/15 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
学校办公室主任职责
2013/12/27 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
费用申请报告范文
2015/05/15 职场文书
自考生自我评价
2019/06/21 职场文书