小编典典

将数字格式转换为缩写数字

sql

我有一个数据库,其中的列包含数字格式的值,例如:

5,000 for 5k

86,600 for 86.6k

4,100,000 for 4.1m

在浏览器中显示时,它应该显示5k表示5000,86.6k表示86600等。我需要php中的代码。如果有任何内置函数可以执行此操作,请提及它。


阅读 218

收藏
2021-04-07

共1个答案

小编典典

如果将它们作为数字,则可以直接使用此功能。

function formatValue($size, $precision = 1)
{
    static $suffixes = array('', 'k', 'm');
    $base = log($size) / log(1000);

    return round(pow(1000, $base - floor($base)), $precision) . $suffixes[floor($base)];
}

如果您没有数字,请使用PHP:取消格式化

对于您的特殊情况,您可能会使用一些肮脏的技巧,但是如果您有其他特殊情况,我不建议您这样做。

function formatValue($size, $precision = 1)
{
    static $suffixes = array('', 'k', 'm');
    $base = log($size) / log(1000);

    if ($base >= 5/3 && $base < 2) {
        return round(pow(1000, $base - floor($base)) / 100, $precision) . 'lakh';
    }

    return round(pow(1000, $base - floor($base)), $precision) . $suffixes[floor($base)];
}
2021-04-07