【问题标题】:format a floating number using PHP使用 PHP 格式化浮点数
【发布时间】:2016-02-17 12:44:23
【问题描述】:

我想格式化一个浮点数,像这样:

  • 输入: 1.7
  • 输出: 01.70

下面的功能我已经试过了。

sprintf("%02.02f", 1.7);

请帮忙。

【问题讨论】:

标签: php


【解决方案1】:

试试:

sprintf('%05.2f', 1.7);

说明

这个forum post 给我指出了正确的方向:第一个数字既不表示前导零的数量,也不表示小数分隔符左侧的总字符数,但结果中的字符总数字符串!

示例 sprintf('%02.2f', 1.7); 至少产生十进制分隔符“。”加上至少 2 个字符的精度。由于总共已经是 3 个字符,所以开头的 %02 无效。要获得所需的“2 个前导零”,需要添加 3 个字符作为精度和小数分隔符,使其成为 sprintf('%05.2f', 1.7);

【讨论】:

  • 这应该是被接受的答案,由于解释,这里接受的答案没有解释什么或为什么有效。我为你点赞。
【解决方案2】:

试试这个

sprintf('%05.2f', 1.7);

【讨论】:

  • 虽然这行得通,但您能否解释一下原因,以便人们更好地理解?
  • 我也知道一个解释
【解决方案3】:

你试过str_pad()吗?它用于字符串,这就是您需要的,因为$var = 001 是八进制,$var = "001" 是字符串。

   $input = 1.7;
   $output = str_pad($input, "0", 2, STR_PAD_BOTH)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多