不带尾随零的PHP数量格式

不带尾随零的PHP数量格式,php,yii,Php,Yii,我在yii有一个项目。但问题可能更多地针对PHP,而不是yii 我有列数量,用户可以输入小数或整数。问题是我的客户不喜欢看到尾随的零。例如: Item | Quantity ------------------- Apple | 10 Mango | 1.000 Sugar | 10,5 Flour | 10.002,55 项目|数量 ------------------- 苹果| 10 芒果| 1.000 糖| 10,5 面粉| 10.002,55

我在yii有一个项目。但问题可能更多地针对PHP,而不是yii

我有列数量,用户可以输入小数或整数。问题是我的客户不喜欢看到尾随的零。例如:

Item | Quantity ------------------- Apple | 10 Mango | 1.000 Sugar | 10,5 Flour | 10.002,55 项目|数量 ------------------- 苹果| 10 芒果| 1.000 糖| 10,5 面粉| 10.002,55 目前,我有两个选择

  • 如果使用数字_格式,结果将是
  • 项目|数量 ------------------- 苹果| 10,00 芒果| 1.000,00 糖| 10,50 面粉| 10.002,55 这是我的客户不喜欢的

  • 如果+0,结果将是
  • 项目|数量 ------------------- 苹果| 10 芒果1000 糖| 10,5 面粉| 10002,55 很难看到成千上万的人

    如何在PHP上获得第一个表


    提前感谢您的帮助。

    您可以使用正则表达式:

    $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);
    }
    
    $values=数组(101000,10.510002.55);
    foreach($val值)
    {
    $numberA=Yii::app()->numberFormatter->format('#,'###0.00',$val);
    $numberB=preg_replace('/,00 |(,[1-9])0/,'\\1',$numberA);
    printf(“%s=>%s
    ,$numberA,$numberB); }
    number\u格式允许您指定小数的数量,然后使用分隔符查看最后2位是否为零

    如果存在,则将其移除

    试一试


    检查逗号是否存在,如果存在,右键修剪零和逗号(分两步)。 Item | Quantity ------------------- Apple | 10 Mango | 1000 Sugar | 10,5 Flour | 10002,55
    $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);
    }
    
    $num = 10002.00;
    $var = number_format($num, 2, ',', '.');
    
    if (substr($var, -3) == ",00")
        $var = substr($var, 0, -3);
    
    echo $var;