本文概述
- A.确切的缩写
- B.通用缩写
在本文中, 我们将向你展示2种实现, 以使用PHP生成数字的缩写。
A.确切的缩写如果你愿意精确显示出Providen Number的缩写, 则此实现可以解决问题:
<
?php /** * Function that converts a numeric value into an exact abbreviation */function number_format_short( $n, $precision = 1 ) { if ($n <
900) {// 0 - 900$n_format = number_format($n, $precision);
$suffix = '';
} else if ($n <
900000) {// 0.9k-850k$n_format = number_format($n / 1000, $precision);
$suffix = 'K';
} else if ($n <
900000000) {// 0.9m-850m$n_format = number_format($n / 1000000, $precision);
$suffix = 'M';
} else if ($n <
900000000000) {// 0.9b-850b$n_format = number_format($n / 1000000000, $precision);
$suffix = 'B';
} else {// 0.9t+$n_format = number_format($n / 1000000000000, $precision);
$suffix = 'T';
}// Remove unecessary zeroes after decimal. "1.0" ->
"1";
"1.00" ->
"1"// Intentionally does not affect partials, eg "1.50" ->
"1.50" if ( $precision >
0 ) {$dotzero = '.' . str_repeat( '0', $precision );
$n_format = str_replace( $dotzero, '', $n_format );
} return $n_format . $suffix;
}
这表示用小数表示缩写, 例如
<
?php $examples = array(15, 129, 400, 1500, 14350, 30489, 50222, 103977 , 2540388, 53003839);
foreach($examples as $example){echo "$example =>
" . number_format_short($example) . "\n";
}/*Outputs: 15 =>
15 129 =>
129 400 =>
400 1500 =>
1.5K 14350 =>
14.4K 30489 =>
30.5K 50222 =>
50.2K 103977 =>
104K 2540388 =>
2.5M 53003839 =>
53M*/
此实现使用number_format函数, 该函数格式化成千上万个分组的数字。
B.通用缩写如果你只愿意显示要约号的重要部分(没有确切的千位组), 则此实现可以解决问题:
<
?php /** * Function that converts a numeric value into an abbreviation. */function number_format_short( $n ) { if ($n >
0 &
&
$n <
1000) {// 1 - 999$n_format = floor($n);
$suffix = '';
} else if ($n >
= 1000 &
&
$n <
1000000) {// 1k-999k$n_format = floor($n / 1000);
$suffix = 'K+';
} else if ($n >
= 1000000 &
&
$n <
1000000000) {// 1m-999m$n_format = floor($n / 1000000);
$suffix = 'M+';
} else if ($n >
= 1000000000 &
&
$n <
1000000000000) {// 1b-999b$n_format = floor($n / 1000000000);
$suffix = 'B+';
} else if ($n >
= 1000000000000) {// 1t+$n_format = floor($n / 1000000000000);
$suffix = 'T+';
} return !empty($n_format . $suffix) ? $n_format . $suffix : 0;
}
【如何在PHP中创建数字的缩写】该代码段将生成主数字和加号, 而不是生成带有” 小数” 的缩写, 例如:
<
?php$examples = array(15, 129, 400, 1500, 14350, 30489, 50222, 103977 , 2540388, 53003839);
foreach($examples as $example){echo "$example =>
" . number_format_short($example) . "\n";
}/*Outputs: 15 =>
15129 =>
129400 =>
4001500 =>
1K+14350 =>
14K+30489 =>
30K+50222 =>
50K+103977 =>
103K+2540388 =>
2M+53003839 =>
53M+*/
编码愉快!
推荐阅读
- 如何使用WinForms上的C#识别(检测和命名)安装在PC上的防病毒软件
- 如何在Symfony 4中安装KnpPaginatorBundle来对学说进行分页
- 如何解决PHPExcel致命错误(带有消息”无法关闭zip”的未捕获异常” PHPExcel_Writer_Exception”)
- 如何在XAMPP 3.3.2中为Symfony 4项目配置虚拟主机
- 如何通过PHP中的十六进制代码检索颜色的人名
- 如何将嵌套的PHP数组转换为CSS,SASS,LESS规则(字符串)
- 如何在PHP中将日期时间四舍五入到最接近的10或5分钟
- 使用PHP将字节转换为人类可读的值(KB,MB,GB,TB,PB,EB,ZB,YB)
- 如何在Linux中获取和显示目录大小