没有尾随零的 PHP 数量格式
Posted
技术标签:
【中文标题】没有尾随零的 PHP 数量格式【英文标题】:PHP quantity formatting without trailing zero 【发布时间】:2014-05-30 03:41:40 【问题描述】:我在 yii 有一个项目。但问题可能更多是针对 php 而不是 yii 特定的。
我有列数量,用户可以在其中输入小数或整数。问题是我的客户不喜欢看到尾随零。例如:
项目 |数量 ------------------ 苹果 | 10 芒果 | 1.000 糖 | 10,5 面粉 | 10.002,55目前,我有两个选择,
-
如果使用 number_format,结果将是
这是我的客户不喜欢的。
-
如果 + 0,则结果为
很难看到千数。
如何在 PHP 上获取第一个表?
提前感谢您的帮助。
【问题讨论】:
检查逗号是否存在,如果存在,右修剪零和逗号(分两步)。 【参考方案1】:你可以用正则表达式来做到这一点:
$values = array(10, 1000, 10.5, 10002.55);
foreach ($values as $val)
$numberA = Yii::app()->numberFormatter->format('#,##0.00', $val);
$numberB = preg_replace('/,00|(,[1-9])0/', '\\1', $numberA);
printf('%s => %s<br />', $numberA, $numberB);
【讨论】:
【参考方案2】:number_format 允许您指定小数位数,然后查看最后 2 位是否为带分隔符的零。
如果它们存在,则删除它们。
试试
$num = 10002.00;
$var = number_format($num, 2, ',', '.');
if (substr($var, -3) == ",00")
$var = substr($var, 0, -3);
echo $var;
【讨论】:
以上是关于没有尾随零的 PHP 数量格式的主要内容,如果未能解决你的问题,请参考以下文章