Mysql
 sql >> Base de données >  >> RDS >> Mysql

Formater le numéro en numéro abrégé

Si vous les avez sous forme de nombres, vous pouvez utiliser cette fonction directement.

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

Si vous ne les avez pas sous forme de nombres, utilisez PHP :unformat money

Pour votre cas particulier, vous pouvez utiliser un petit hack sale, mais je ne le recommande pas si vous avez des cas plus particuliers.

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