php的sprintf函数的用法 控制浮点数格式

 更新时间:2014年02月14日 09:43:41   作者:  
这篇文章主要介绍了php的sprintf函数的用法,需要的朋友可以参考下

控制浮点数打印格式

浮点数的打印和格式控制是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魔术方法的使用示例

    这篇文章主要介绍了PHP魔术方法的使用示例,本文分别讲解了__get、__set、__call、__callStatic、__toString、 __invoke等魔术方法的使用,需要的朋友可以参考下
    2015-06-06
  • Zend Framework动作控制器用法示例

    Zend Framework动作控制器用法示例

    这篇文章主要介绍了Zend Framework动作控制器用法,结合实例形式分析了动作控制器的功能、使用步骤、相关技巧与注意事项,需要的朋友可以参考下
    2016-12-12
  • 基于Laravel 5.2 regex验证的正确写法

    基于Laravel 5.2 regex验证的正确写法

    今天小编就为大家分享一篇基于Laravel 5.2 regex验证的正确写法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • php比较两个绝对时间的大小

    php比较两个绝对时间的大小

    这篇文章主要介绍了php比较两个绝对时间的大小,,需要的朋友可以参考下
    2014-01-01
  • PHP实现单例模式最安全的做法

    PHP实现单例模式最安全的做法

    这篇文章主要介绍了PHP实现单例模式最安全的做法,适用PHP5.3以上版本,采用了最好的做法,需要的朋友可以参考下
    2014-06-06
  • thinkPHP实现表单自动验证

    thinkPHP实现表单自动验证

    这篇文章主要介绍了如何使用thinkPHP实现表单自动验证,笔者也是菜鸟,一步步实验才得到的结果,这里给需要的朋友可以参考下
    2014-12-12
  • php数组合并的二种方法

    php数组合并的二种方法

    这篇文章主要介绍了php数组合并的二种方法,同时讲了用加号和用array_merge合并数组的区别,需要的朋友可以参考下
    2014-03-03
  • php获取字段名示例分享

    php获取字段名示例分享

    这篇文章主要介绍了php获取字段名示例,需要的朋友可以参考下,代码很简单,下面直接上代码了
    2014-03-03
  • destoon之一键登录设置

    destoon之一键登录设置

    这篇文章主要介绍了destoon的一键登录设置,需要的朋友可以参考下
    2014-06-06
  • ThinkPHP3.1新特性之对Ajax的支持更加完善

    ThinkPHP3.1新特性之对Ajax的支持更加完善

    这篇文章主要介绍了ThinkPHP3.1对Ajax的支持,需要的朋友可以参考下
    2014-06-06

最新评论