格式化字符串sprintf的"填空字元" 不清楚啊
<?php //格式化字符串 $str?=?'100.1'; $result?=?sprintf('%18.3f',?$str); echo?$result;
我把0改成1并沒有在不足的地方填上1,而是在前面多了5個空格,把0改成2 前面多了15個空格,請問什么情況?謝謝
<?php //格式化字符串 $str?=?'100.1'; $result?=?sprintf('%18.3f',?$str); echo?$result;
我把0改成1并沒有在不足的地方填上1,而是在前面多了5個空格,把0改成2 前面多了15個空格,請問什么情況?謝謝
2016-11-22
舉報
2016-11-22
1、這個 % 符號是開始的意思,寫在最前面表示指定格式開始了。 也就是 "起始字符", 直到出現 "轉換字符" 為止,就算格式終止。
2、跟在 % 符號后面的是 0, 是 "填空字元" ,表示如果位置空著就用0來填滿。
3、在 0 后面的是1,這個 1 是規定整個所有的字符串占位要有1位以上(小數點也算一個占位)。
??? 如果把 1 改成 6,則 $result的值將為 099.90
??? 因為,在小數點后面必須是兩位,99.90一共5個占位,現在需要6個占位,所以用0來填滿。
4、在 %01 后面的 .2 (點2) 就很好理解了,它的意思是,小數點后的數字必須占2位。 如果這時候,$str 的值為9.234,則 $result的值將為9.23.
??? 為什么4 不見了呢? 因為在小數點后面,按照上面的規定,必須且僅能占2位。 可是 $str 的值中,小數點后面占了3位,所以,尾數4被去掉了,只剩下 23。
5、最后,以 f "轉換字符" 結尾。
2016-12-08
這個要理解,意思就是那個呀