为了账号安全,请及时绑定邮箱和手机立即绑定

第二条%号后面的0 是填空字元 不是很懂什么意思

表示 如果位置空着 就用0填满  哪里空着?怎么空着啊?

正在回答

3 回答

这个 % 符号是开始的意思,写在最前面表示指定格式开始了。 也就是 "起始字符", 直到出现 "转换字符" 为止,就算格式终止。

在 0 后面的是1,这个 1 是规定整个所有的字符串占位要有1位以上(小数点也算一个占位)。

比如

$str = '100.1';

$result = sprintf('%08.3f',$str); //我智力  0 之后写的是 8    

echo $result;   //输出   0100.100     为什么呢。因为100.1  只有五位数(算上小数点。)而我在sprintf里面要求小数为要有三位,所以1后面多了两个0, 加上那两个0 现在总的也只有五位数,而我在sprintf里面规定了总的要有8位。又因为 在sprintf %后面第一个规定了 不足位数用 0填充,所以 才输出了   0100.100


0 回复 有任何疑惑可以回复我~
#1

慕姐4424294 提问者

原来如此 那个 如果我吧08.3 改成18.3呢
2015-12-06 回复 有任何疑惑可以回复我~
#2

木子舟义 回复 慕姐4424294 提问者

那就会在需要填充的地方输出很大一个空白符 这个我也不知道为啥
2015-12-06 回复 有任何疑惑可以回复我~

$result=sprintf('%011.3f',$str);

0000100.100

$result=sprintf('%11.3f',$str);

    100.100

解释一下% 与. 之间的数字的含义:

011:表示格式化后总位数为11位(包含小数点),不足前面补零

11:即开始位不带0就为空,格式化后总位数为11位(包含小数点),不足前面补空格

3 回复 有任何疑惑可以回复我~
#1

进击的小奇

这个解释可以,其实就只能填0或者不填。
2016-06-30 回复 有任何疑惑可以回复我~
#2

进击的小奇

但是不填的话前面也不会补空格的。
2016-06-30 回复 有任何疑惑可以回复我~

还有 那个01.2  里面的1  的意思 我也不是很懂 求 帮助 解释下

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP进阶篇
  • 参与学习       181828    人
  • 解答问题       2577    个

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

进入课程

第二条%号后面的0 是填空字元 不是很懂什么意思

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信