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应用程序来获取Web服务器的状态信息
Oct 09 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
Sep 30 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
Sep 30 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
php命令行写shell实例详解
Jul 19 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
php intval函数用法总结
Apr 14 PHP
PHP与Web页面交互操作实例分析
Jun 02 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新手上路(十)
2006/10/09 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python selenium文件上传方法汇总
2020/11/19 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
Python3处理HTTP请求的实例
2018/05/10 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
python+logging+yaml实现日志分割
2019/07/22 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
在django模板中实现超链接配置
2019/08/21 Python
浅谈Python 参数与变量
2020/06/20 Python
虚拟机下载python是否需要联网
2020/07/27 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Java模拟试题
2014/11/10 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
员工考核评语大全
2014/04/26 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
2016年春节问候语
2015/11/11 职场文书
检讨书之工作不认真
2019/08/14 职场文书
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫