可能重复:
Format number in PHP
我想要我的数字格式12 char in length
,就像有值12
一样,它应该输出000000000012
示例:如果值为123.50
,则应输出000000012350
无小数(100的倍数)
任何想法,将使用哪个功能?
谢谢!
答案 0 :(得分:4)
您可以使用str_pad
echo str_pad(12, 12, "0", STR_PAD_LEFT);
printf("%012s", 12);
输出
000000000012
一些解决方法
var_dump(formatOutput("12"));
var_dump(formatOutput("123.50"));
var_dump(formatOutput("123.378201"));
function formatOutput($no,$max = 15) {
$no = str_pad("1", strlen(substr(strrchr($no, "."), 1)), "0", STR_PAD_RIGHT) * $no;
if(strpos($no, "."))
$no = str_replace(".", "", $no) . "0" ;
return str_pad($no, $max, "0", STR_PAD_LEFT);
}
输出
string '000000000000012' (length=15)
string '000000000001235' (length=15)
string '000001233782010' (length=15)
答案 1 :(得分:2)
请参阅str_pad()
http://php.net/manual/en/function.str-pad.php
答案 2 :(得分:1)
string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
此函数返回在左侧,右侧或两侧填充的输入字符串到指定的填充长度。如果没有提供可选参数pad_string,则输入用空格填充,否则用pad_string中的字符填充到限制。
input
输入字符串。
pad_length
如果pad_length的值为负,小于或等于输入字符串的长度,则不会发生填充。
pad_string
如果所需数量的填充字符不能均匀地除以pad_string的长度,则pad_string可能会被截断。
pad_type
可选参数pad_type可以是STR_PAD_RIGHT,STR_PAD_LEFT或STR_PAD_BOTH。如果未指定pad_type,则假定为STR_PAD_RIGHT。
答案 3 :(得分:1)