【问题标题】:PHP printf storing and outputtingPHP printf 存储和输出
【发布时间】:2012-11-05 00:32:11
【问题描述】:

我知道 printf 用于输出,sprintf 用于存储。

但在这段代码中:

$str = printf('%.1f', 1.3);
echo $str;

为什么输出 1.33?我假设它会输出 1.31.3?

【问题讨论】:

  • 两个小数点?怎么样?
  • 这个例子看起来像你想要的sprintf()

标签: php printf output


【解决方案1】:

PHP 中的printf 函数实际上做了两件事:打印其参数(根据格式字符串,作为第一个发送)并返回此打印字符串的长度。

通常不使用 printf 返回的值 - 但在这种情况下不使用。由于(按格式)printf 这里必须打印 '1.3' 字符串(小数点后只有一位),它的长度是 3 - 所以它存储在 $str 变量中并在下一条语句中打印(@987654326 @)。所以整个输出是'1.33'。

作为旁注,这...

$str = print(1.3);
echo $str;

... 打印 '1.31',因为 print 还做了两件事 - 打印其参数并返回 1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 2011-10-04
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多