PHP数字格式为输出

时间:2012-10-09 13:29:15

标签: php function numbers

  

可能重复:
  Format number in PHP

我想要我的数字格式12 char in length,就像有值12一样,它应该输出000000000012

示例:如果值为123.50,则应输出000000012350无小数(100的倍数)

任何想法,将使用哪个功能?

谢谢!

4 个答案:

答案 0 :(得分:4)

您可以使用str_pad

  echo str_pad(12, 12, "0", STR_PAD_LEFT);

您还可以使用printfsprintf

  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)

答案 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)

    sprintf(); 

检查php手册sprintf() function in php.net

printf()一起完成工作。检查上面链接中的示例7。