格式编号为缩写编号

时间:2014-02-03 06:35:35

标签: php mysql sql converter varchar

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

5,000 for 5k 

86,600 for 86.6k

4,100,000 for 4.1m

在浏览器中显示时,它应显示为5k为5000,86.6k为86,600等。我需要php中的代码。如果有任何内置功能,请提及它。

1 个答案:

答案 0 :(得分:2)

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

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: unformat money

对于您的特殊情况,您可能会使用一些脏的黑客,但如果您有更多特殊情况,我不推荐它。

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)];
}