PHP自带函数给数字或字符串自动补齐位数
先来看个例子:需求为生成4位数,不足前面补0
<?php //生成4位数,不足前面补0 $var=sprintf("%04d",2); echo$var;//结果为0002 echodate('Y_m_d',time()).'_'.sprintf('d',rand(0,99)); ?>
sprintf()函数
有没有感觉很像c语言
1.语法
sprintf(format,arg1,arg2,arg++)
参数 描述
format 必需。转换格式。
arg1 必需。规定插到format字符串中第一个%符号处的参数。
arg2 可选。规定插到format字符串中第二个%符号处的参数。
arg++ 可选。规定插到format字符串中第三、四等等%符号处的参数。
2.说明
参数format是转换的格式,以百分比符号("%")开始到转换字符结束。下面的可能的format值:
%%-返回百分比符号
%b-二进制数
%c-依照ASCII值的字符
%d-带符号十进制数
%e-可续计数法(比如1.5e+3)
%u-无符号十进制数
%f-浮点数(localsettingsaware)
%F-浮点数(notlocalsettingsaware)
%o-八进制数
%s-字符串
%x-十六进制数(小写字母)
%X-十六进制数(大写字母)
arg1,arg2,++等参数将插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个%符号中,插入arg1,在第二个%符号处,插入arg2,依此类推。
<?php $number=123; $txt=sprintf("%f",$number); echo$txt; ?>
3.格式数字number_format()
<?php $number=1234.56; //englishnotation(default) $english_format_number=number_format($number); //1,235 //Frenchnotation $nombre_format_francais=number_format($number,2,',',''); //1234,56 $number=1234.5678; //englishnotationwithoutthousandsseperator $english_format_number=number_format($number,2,'.',''); //1234.57 ?>