格式化后缀为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;
}
}
}
任何人都可以提出一个解决办法呢?
答
当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
'number_format(is_numeric($ display_num) ?$ display_num:0,$ decimals)。$ abbrev;' – apokryfos
似乎不工作它显示没有数字这样做 –