格式化后缀为k m的数字b

问题描述:

我得到了可以正常工作的函数。但如果说价值为null,那么我希望它显示0而不是“”空白。我加0 => "0"$abbrevs,但我没有得到预期的结果。格式化后缀为k m的数字b

我的功能:

function numberConvert($number) { 
    $abbrevs = array(12 => "T", 9 => "B", 6 => "M", 3 => "K", 0 => ""); 
    foreach($abbrevs as $exponent => $abbrev) { 
     if($number >= pow(10, $exponent)) { 
      $display_num = $number/pow(10, $exponent); 
      $decimals = ($exponent >= 3 && round($display_num) < 100) ? 1 : 0; 
      return number_format($display_num,$decimals) . $abbrev; 
     } 
    } 
} 

任何人都可以提出一个解决办法呢?

+0

'number_format(is_numeric($ display_num) ?$ display_num:0,$ decimals)。$ abbrev;' – apokryfos

+0

似乎不工作它显示没有数字这样做 –

当10上升到任意数量的,结果总是不为0(这是任何数量和任何有限的力量真),所以没有机会0 >= pow(10,$exponent)

function numberConvert($number) { 
    $abbrevs = array(12 => "T", 9 => "B", 6 => "M", 3 => "K", 0 => ""); 
    foreach($abbrevs as $exponent => $abbrev) { 
     if($number >= pow(10, $exponent)) { 
      $display_num = $number/pow(10, $exponent); 
      $decimals = ($exponent >= 3 && round($display_num) < 100) ? 1 : 0; 
      return number_format($display_num,$decimals) . $abbrev; 
     } 
    } 
    return number_format(is_numeric($display_num)?$display_num:0,0); //Not returned yet? Fall back to this. 
} 
+0

我得到你的队友。以及这似乎是工作,但它不能没有小数,它显示为0.0,但我想它只是0 –

+0

数字格式的第二个参数控制小数点。更新。 – apokryfos