奇怪,我找不到这方面的答案(可能搜索不正确)。
我想删除第一个非零数字之后的所有数字。
例如,如果我有 0.00208239
,我如何将它减少到 0.002
,更好的是 2m
( SI units )?此数据来自 MySQL,但通过 PHP AJAX 路由到一个 id'd div。
注意 第一个有效数字可以是 10^-6 到 10^6 之间的任何数字。所以,1,000.77
需要是 1,000
,或者如果你很棒,1k
。
我正在使用 jQuery 对其进行照明,因此 js、jQuery、MySQL、PHP 的最佳答案会得到检查,但任何有效的解决方案当然会得到 +。
非常感谢!
最佳答案
您可以使用正则表达式获取第一个数字,然后使用查找表添加后缀:
$suffixes = array(
-6 => 'µ',
-5 => '',
-4 => '',
-3 => 'm',
-2 => 'c',
-1 => '',
0 => '',
1 => '',
2 => '',
3 => 'k',
4 => '',
5 => '',
6 => 'M',
);
preg_match( '/^[^1-9]*([1-9])/', $str, $matches);
$ten = floor( log( $str, 10));
echo $matches[1] . $suffixes[ $ten ] . "\n";
关于php - 压缩显示的空间数字(类似于堆栈,但也适用于 <1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544007/