PHP中sprintf()函数的附加格式值是什么?

qmelpv7a  于 2023-04-19  发布在  PHP
关注(0)|答案(1)|浏览(99)

sprintf()%02.1f附加格式值中的02部分我看不懂,我知道.1是小数位数,但我没有得到02部分。

echo sprintf('The distance is %02.1f', $this-car->getDistance());

我正在看https://www.w3schools.com/php/func_string_sprintf.asp,它说[0-9]“指定变量值的最小宽度”,但我不明白他们的意思。
提前感谢您提供的任何信息。
我在看w3schools.com和其他搜索结果。

bgtovc5b

bgtovc5b1#

2占据的位置是整个字段的 * 最小 * 宽度,包括小数点的两边和小数点本身。由于x.y已经是三个字符,2在这里没有任何作用,但是如果不为字段宽度指定 some 值,就不能包含0(这意味着“用零填充”)。
但是%05.1绝对会产生与%02.1不同的结果--只要数字不是太大,以至于在加上小数后已经占用了5个空格:

php > sprintf('%02.1f', 0)
0.0
php > sprintf('%05.1f', 0)
000.0

如果你去掉0,它仍然是填充的,但是有空格:

php > sprintf('%5.1F', 0)
  0.0

相关问题