2

可能重复:
PHP 中的格式数字

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

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

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

谢谢 !

4

4 回答 4

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)
于 2012-10-09T13:30:43.377 回答
2

str_pad() http://php.net/manual/en/function.str-pad.php

于 2012-10-09T13:30:56.253 回答
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。

于 2012-10-09T13:33:00.863 回答
1
    sprintf(); 

检查 php.net 中的 php 手动sprintf() 函数

随着printf()可以做的工作。检查上面链接中的示例 7。

于 2012-10-09T13:36:40.937 回答