PHP 在数字中添加千位分隔符并保留前导零

标签 php numbers number-formatting

我正在尝试使用 PHP 将千位分隔符添加到数字中,同时保留前导零(这是应用程序设计的一部分,保留前导 0,以便人们可以看到数字朝着集合的方向增长目标 - 6 位数字)。

我最初的尝试是,如果当前计算的数字长度小于 6 位数字,则使用 str_pad 添加前导零。然后添加逗号,我使用了 number_format。明显的问题是 number_format 删除了前导 0。

$num = 550;
$num_padded = str_pad($num, 6, '0', STR_PAD_LEFT);
echo number_format($num_padded);  

因此返回 550 而不是 000,550

有人知道实现我正在寻找的格式的可靠方法吗?

谢谢!

最佳答案

我想到了这个简单的技巧:

function padAndFormat($number, $length)
{
   if(strlen($number)>=$length)
   {
      return number_format($number);
   }
   $number = number_format('1'.str_pad($number, $length-1, '0', STR_PAD_LEFT));
   $number[0] = '0';
   return $number;
}

//var_dump(padAndFormat('517', 6)); //string(7) "000,517" 

关于PHP 在数字中添加千位分隔符并保留前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361825/

相关文章:

php - Laravel 5.1 - 关系方法必须返回类型的对象

javascript - 以零数字开头的参数无法正确传递给 JavaScript 函数

C# 随机数生成的通用方法

java - 从不同的区域设置货币格式格式化字符串中的货币

Java本地化数字格式

javascript - 如何根据本地代码(即 en_GB、it_IT)格式化价格?

php - Oracle 过程输出参数从 PHP 返回 -1

php - 序列化对象并缓存它们的奇怪行为

php - 使用 yii 框架切换到生产环境时出现 404

javascript - 如何将一长串数字转换为格式化的时间