使用 PHP 格式化浮点数


format a floating number using PHP

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

  • 输入 : 1.7
  • 输出 : 01.70

我已经尝试了以下功能。

sprintf("%02.02f", 1.7);

请帮忙。

尝试:

sprintf('%05.2f', 1.7);

解释

这篇论坛帖子为我指明了正确的方向:第一个数字既不表示前导零的数量,也不表示小数分隔符左侧的总字符数,而是结果字符串中的字符总数!

sprintf('%02.2f', 1.7);至少生成小数分隔符"."加上至少 2 个字符的精度。由于总共已经是 3 个字符,因此开头的 %02 不起作用。要获得所需的"2 个前导零",需要添加 3 个字符的精度和小数分隔符,使其sprintf('%05.2f', 1.7);

试试这个

sprintf('%05.2f', 1.7);

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

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