php - 压缩显示的空间数字(类似于堆栈,但也适用于 <1)

标签 php javascript jquery mysql

奇怪,我找不到这方面的答案(可能搜索不正确)。

我想删除第一个非零数字之后的所有数字。

例如,如果我有 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/

相关文章:

php - Perl 正则表达式 X 修饰符的倒数

javascript - 引用匿名函数与命名函数的属性

javascript - 暂停、恢复、中止和解决长期运行的 promise

php - 我在mysql数据库中有一些记录。我想使用php以csv文件格式导出每日记录?

php - 不可直接访问的登录表单是否有助于阻止机器人程序?

javascript - 显示弹出窗口几次

javascript - 当我操作其中一个 DOM 父元素时,是否可以阻止 &lt;script&gt; 元素中的代码再次运行?

javascript - 为什么以及何时我们应该在 ember.js 中使用 argument.length

javascript - 每次 AJAX 调用时使用 JQuery SlideUp、Delay 和 SlideDown

php - slider 未显示 : setREVStartSize is not defined