如何在 PHP 中为数字(千、十万、百万、十亿)添加逗号分隔符

Posted

技术标签:

【中文标题】如何在 PHP 中为数字(千、十万、百万、十亿)添加逗号分隔符【英文标题】:How can I add commas separator to numbers (thousands, hundred thousand, million, billion) in PHP 【发布时间】:2018-08-08 03:13:42 【问题描述】:

当值达到十万,百万,十亿时,我想添加逗号分隔符。

如何做到这一点?

我在http://php.net/manual/en/function.number-format.php 中的参考资料

我当前的代码可以在千位分隔符上添加逗号。

<?php
  $output = "1000000"; 
  if($output == "NULL")
    echo "0";
   else 
    $output;
    $new = number_format($output, 2, '.', ',');
    if($new == "0.00")
      echo "0";
     else 
      echo $new;
    
  
?>

输出:

1000 into 1,000.00

当价值达到100万时,问题就来了。是这样显示的。

100000,000.00

十万和百万之间不加逗号。

我希望我的最终值看起来像这样。

1,000,000.00 

在这里欣赏专业人士可以帮助我解决这个问题。

提前致谢。

【问题讨论】:

3v4l.org/RgpL3 似乎适合我,您的 php.ini 配置中是否有任何特殊的区域/国家本地化设置? 对我来说很好,sandbox.onlinephpfunctions.com/code/… 你的问题是你没有在回声之间添加任何空格或新行。 我会解雇所有null0.00 废话,只使用empty。 这是什么? echo $output = "1000000"; 然后没有 "\n" after you echo, is jamming your output together and making echo "1000"` 和 echo "1,000.00" 看起来不是这样。我怀疑你的输出就是你说的,$output的初始值是多少 How can I add commas to numbers in PHP的可能重复 【参考方案1】:

正如我在 cmets 中所说,您因为这个错误而感到困惑。

echo $output = "1000000";

将其设置为"1000000",然后回显它,然后您的代码就会执行,这一切都会被卡在一起。

举个例子:

$output = 1000;//initial value

echo $output = "1000000"; //initial value is overwritten then echoed
if($output == "NULL")
  echo "0";
 else 
  $output;
  $new = number_format($output, 2, '.', ',');
  if($new == "0.00")
    echo "0";
   else 
    echo $new;
  

输出:

10000001,000,000.00

这是您未修改的代码。

Sandbox

现在如果你移除那个回声

$output = "1000000";

你会看到

1,000,000.00

Sandbox2

现在请注意,除了删除第一个回声外,我没有修改您的代码。现在,如果您真的想这样做echo $output = "1000000";,我不会真的建议这样做,因为它很难看。你可以在它后面加上某种分隔。

echo $output = "1000000";  
echo PHP_EOL.'---------------'.PHP_EOL;

然后你得到

1000000
---------------
1,000,000.00

默认情况下,echo 不会创建新行。

有道理,

【讨论】:

以上是关于如何在 PHP 中为数字(千、十万、百万、十亿)添加逗号分隔符的主要内容,如果未能解决你的问题,请参考以下文章

java怎么将数字1转换为大写一

用excel做表格,一个是单价,一个是数量,然后希望输出百万位,十万位,万位,千万,千,百,拾,元

C# 中的数字分隔符 _

谷歌表格:将百万/十亿的价值转换为数字

具有数千、数百万和数十亿的问题排序数字(货币)

用百万 (M) 和十亿 (B) 后缀格式化数字