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

时间:2018-08-08 03:13:42

标签: php number-formatting

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

那怎么办?

我在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

当价值达到一百万时,问题就来了。它显示如下。

100000,000.00

它不会在十万到百万之间添加逗号。

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

1,000,000.00 

这里的专家可以帮助我解决这个问题。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

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

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不会创建新行。

有道理