【问题标题】:PHP Number format as Output [duplicate]PHP数字格式作为输出[重复]
【发布时间】:2012-10-09 13:29:14
【问题描述】:

可能重复:
Format number in PHP

我想要我的数字格式12 char in length,比如如果有值12,它应该输出000000000012

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

任何想法,将使用哪个函数?

谢谢!

【问题讨论】:

  • @AurelioDeRosa:我已经阅读了上述任务,但两者在所需输出方面存在差异
  • 只适用于str_pad(number_format($order_total, 2, '', ''), 12, 0, STR_PAD_LEFT);

标签: php function numbers


【解决方案1】:

您可以使用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)

【讨论】:

  • 不客气@iamtheladylegend
  • 如果我输入值为 123.50,它将输出:0000000123.5 你能告诉我如何得到000000012350 吗? tnx 提前
  • 等一下……我马上更新
  • 如果是 123.378201 @Barmar 会怎样
  • 最后我发现它的工作原理很简单:str_pad(number_format($order_total, 2, '', ''), 12, 0, STR_PAD_LEFT);感谢大家的帮助和所有支持
【解决方案2】:

【讨论】:

    【解决方案3】:
    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。

    【讨论】:

      【解决方案4】:
          sprintf(); 
      

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

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

      【讨论】:

        猜你喜欢
        • 2014-09-30
        • 1970-01-01
        • 2013-02-20
        • 2019-02-23
        • 1970-01-01
        • 2015-06-23
        • 2012-01-11
        • 2018-01-29
        • 1970-01-01
        相关资源
        最近更新 更多