【发布时间】:2017-11-17 20:21:52
【问题描述】:
根据documentation, "g - %e 和 %f 中较短的"
我已经执行了这个语句:
printf("e:%1\$.3e\nf:%1\$.3f\ng:%1\$.3g", .123e2);
这是输出:
e:1.230e+1 // long value
f:12.300 // shorter value
g:12.3 // here g gives something else
为什么"g" 提供了其他内容,我是不是把文档弄错了?
$ php -v
PHP 7.1.10 (cli) (built: Oct 19 2017 15:16:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.5.1, Copyright (c) 2002-2017, by Derick Rethans
【问题讨论】:
-
这个问题不是 PHP 独有的,尽管 PHP 是我知道的唯一一种语言,官方文档 会在哪里出现这个错误。
g说明符的相同错误文档可以在包括 C 在内的许多语言中找到 - 并且所有语言的实际行为都是相同的。请参阅我在 What precisely does the %g printf specifier mean? 的文章,其中引用了您在此处引用的相同 PHP 文档,并在其中解释了实际行为与仅选择较短的%f和%e有何不同。