gpt4 book ai didi

php - .sprintf ("%4.2f", value) 如何在 PHP 中运行?

转载 作者:可可西里 更新时间:2023-11-01 00:22:43 25 4
gpt4 key购买 nike

我正在学习更多 PHP 教程,特别是 DevZone PHP 101 ,并感到困惑:

echo .sprintf("%4.2f", (2 * $radius * pi()))

我找到了这个

I think that means produce a floating-point field four positions wide with two decimal places, using the value of the first succeeding parameter.

That comes from the C/C++ line of programming languages. an sprintf() takes the first parameter as a format statement. Anything in it starting with a % is a field specifier; anything else is just printable text. So if you give a format statement with all text and no specifiers, it will print exactly the way it appears. With format specifiers, it needs data to work on.

但在尝试了一些不同的值后,我仍然不明白。在我看来,如果它在这种情况下的目的只是将小数限制为 2 位,我所要做的就是

.sprintf("%.2f", (2 * $radius * pi()))

它前面的4有什么意义呢?在PHP Manual它让我相信它确定字符总数应该是 4 但 (a) 事实并非如此,因为小数点使它成为 5 个字符,并且 (b) 事实并非如此,因为我尝试将其更改为更大的数字,如 % 8.2f 并且它没有在两端添加任何零。有人可以更好地解释这一点。

谢谢!

最佳答案

格式说明符中的第一个数字 %8.2f 是填充长度。默认情况下,sprintf 使用空格字符。

你可以看到更大数字的效果:

printf("%20.2f", 1.23);

例如会导致:

                1.23

数字前有 16 个空格。 float 占4,比如填充长度设置为20。 (也许你把它打印到网页上,因此没有可见的填充空间..)

下面还有一个关于 sprintf 的例子使用替代填充字符的联机帮助页:

printf("%'*20.2f", 1.23); // use the custom padding character '*'

将导致:

****************1.23

关于php - .sprintf ("%4.2f", value) 如何在 PHP 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com