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调用Java对象的方法
Oct 09 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
PHP代码优化的53个细节
Mar 03 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
php实现修改新闻时删除图片的方法
May 12 PHP
简单谈谈favicon
Jun 10 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
php实现微信公众号企业转账功能
Oct 01 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 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
c#中的实现php中的preg_replace
2009/12/21 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
阿里云:Aliyun.com
2017/02/15 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
销售总监岗位职责
2014/01/04 职场文书
物业保安员岗位职责
2014/03/14 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
法学专业求职信范文
2015/03/19 职场文书
逃课检讨书范文
2015/05/06 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python