【问题标题】:sprintf length specifier in PHPPHP中的sprintf长度说明符
【发布时间】:2012-06-26 16:51:58
【问题描述】:

length specifier 包含在sprintfprintf 的格式字符串中是否有任何好处,即使没有提及in the PHP manual

  • h - 参数被解释为一个短整型或无符号短整型(仅适用于整数说明符:idouxX)。李>
  • l - 对于整数说明符(idouxX),参数被解释为 long int 或 unsigned long int,并被解释为宽字符或用于说明符 cs 的宽字符串。
  • L - 参数被解释为 long double(仅适用于浮点说明符:eEfgG)。

还是把它排除在外更好?我想我想弄清楚的是为什么 php 决定把它排除在外。

考虑以下代码,它来自 phpriot.com:

$a = 0.5;
$b = 0.1;
$c = 16;

echo sprintf('%01.2lf %.1lf 0x%x', $a, $b, $c); # 0.50 0.1 0x10

【问题讨论】:

    标签: php printf


    【解决方案1】:

    在 PHP 中,除了 IntegersFloats 之外,数字之间没有区别。根据系统架构(32 位或 64 位),整数类型为 int 或 int64。您可以使用字符串和 BCMath 来模拟更大的数字,但它们将始终存储在字符串中。

    因此,在 PHP 中,没有必要使用长度说明符来更改数字的类型。要么是浮点数,要么不是。

    【讨论】:

      【解决方案2】:

      不需要。 PHP没有短整数、整数、长整数等,只有ints

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-07
        • 2021-02-24
        • 1970-01-01
        • 2013-10-09
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多