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实现MySQL更新记录的代码
Jun 07 PHP
深入php数据采集的详解
Jun 02 PHP
深入array multisort排序原理的详解
Jun 18 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
网页上facebook分享功能具体实现
Jan 26 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
PHP date函数常用时间处理方法
May 11 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
Yii2框架可逆加密简单实现方法
Aug 25 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 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
PHP伪静态写法附代码
2008/06/20 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
Python修改Excel数据的实例代码
2013/11/01 Python
python发腾讯微博代码分享
2014/01/10 Python
Python 不同对象比较大小示例探讨
2014/08/21 Python
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
python如何对链表操作
2020/10/10 Python
Pycharm中如何关掉python console
2020/10/27 Python
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
苹果Mac升级:MacSales.com
2017/11/20 全球购物
学习党章思想汇报
2014/01/07 职场文书
求职意向书
2014/04/01 职场文书
初中学生操行评语
2014/12/26 职场文书
研究生导师评语
2014/12/31 职场文书