php格式化字符串
如果有一個字符串$str = '99.9';,怎么樣使這個字符串變成99.90呢?
我們需要用到PHP的格式化字符串函數(shù)sprintf()
函數(shù)說明:sprintf(格式,?要轉化的字符串)
返回:格式化好的字符串
例子:
$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//結果顯示99.90
解釋下,上面例子中的格式
這個 %01.2f 是什么意思呢?
1、這個 % 符號是開始的意思,寫在最前面表示指定格式開始了。 也就是 "起始字符", 直到出現(xiàn) "轉換字符" 為止,就算格式終止。
2、跟在 % 符號后面的是 0, 是 "填空字元" ,表示如果位置空著就用0來填滿。
3、在 0 后面的是1,這個 1 是規(guī)定整個所有的字符串占位要有1位以上(小數(shù)點也算一個占位)。
??? 如果把 1 改成 6,則 $result的值將為 099.90
??? 因為,在小數(shù)點后面必須是兩位,99.90一共5個占位,現(xiàn)在需要6個占位,所以用0來填滿。
4、在 %01 后面的 .2 (點2) 就很好理解了,它的意思是,小數(shù)點后的數(shù)字必須占2位。 如果這時候,$str 的值為9.234,則 $result的值將為9.23.
??? 為什么4 不見了呢? 因為在小數(shù)點后面,按照上面的規(guī)定,必須且僅能占2位。 可是 $str 的值中,小數(shù)點后面占了3位,所以,尾數(shù)4被去掉了,只剩下 23。
5、最后,以 f "轉換字符" 結尾。
2015-12-15
++1