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 相关文章推荐
1.PHP简介
Oct 09 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
php 数组二分法查找函数代码
Feb 16 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP Zip压缩 在线对文件进行压缩的函数
May 26 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php支付宝接口用法分析
Jan 04 PHP
PHP进程同步代码实例
Feb 12 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 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的输入输出流
2007/02/14 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
php pdo操作数据库示例
2017/03/10 PHP
PHP children()函数讲解
2019/02/03 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
jQuery 选择同时包含两个class的元素的实现方法
2016/06/01 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
vue跨域解决方法
2017/10/15 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
python实现线程池的方法
2015/06/30 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
Python自省及反射原理实例详解
2020/07/06 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
主管职责范文
2013/11/09 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers