Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Formatar número para número abreviado


Se você os tiver como números, poderá usar essa função diretamente.
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)];
}

Se você não os tiver como números, use PHP:unformat money

Para seu caso particular, você pode usar um pouco de hack sujo, mas eu não recomendo se você tiver casos mais especiais.
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)];
}