''120 Mil içine 120000000 dönüştürmek için güzel bir PHP algoritması?

4 Cevap php

Ben bir dize olarak birimlerini gösteren bir güzel format insan okunabilir numarasına bir sayı (float veya tamsayı olabilir) değiştirmek için güzel bir algoritma bulmak için mücadele ettik. Örneğin:

100500000 -> '100.5 Mil'
200400 -> '200.4 K'
143000000 -> '143 Mil'
52000000000 -> '52 Bil'

vs, fikir olsun.

Herhangi bir işaretçiler?

4 Cevap

Ben aşağıdaki kodu adapte (i net bulundu) İstediklerim:

Kod kredi buldum bu linke gider: http://www.phpfront.com/php/human-readable-byte-format/

function humanReadableOctets($octets)
{
    $units = array('B', 'kB', 'MB', 'GB', 'TB'); // ...etc

    for ($i = 0, $size =$octets; $size>1024; $size=$size/1024)
        $i++;

    return number_format($size, 2) . ' ' . $units[min($i, count($units) -1 )];
}

Gerçi 1024-1000 değiştirmek unutmayın ...

Hala ilgilenen varsa burada bir log() sürümü:

function wordify($val, $decimalPlaces = 1) {
    if ($val < 1000 && $val > -1000)
    	return $val;
    $a = array( 0 => "", 1 => "K", 2 => "Mil", 3 => "Bil", 4 => "Tril", 5 => "Quad" );
    $log1000 = log(abs($val), 1000);
    $suffix = $a[$log1000];
    return number_format($val / pow(1000, floor($log1000)), $decimalPlaces, '.', '') . " $suffix";
}

$tests = array(-1001, -970, 0, 1, 929, 1637, 17000, 123456, 1000000, 1000000000, 1234567890123);

foreach ($tests as $num) {
    echo wordify($num)."<br>";
}

found this

this one might be better for you

iyi bir başlangıç ​​olabilir