如何在 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/… 你的问题是你没有在回声之间添加任何空格或新行。 我会解雇所有null
和0.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 中为数字(千、十万、百万、十亿)添加逗号分隔符的主要内容,如果未能解决你的问题,请参考以下文章