[Python-de] Tausenderpunkt

Hans-Peter Jansen hpj at urpla.net
Don Dez 2 19:37:24 CET 2004


Hi Bertram,

On Thursday 02 December 2004 15:37, Bertram Scharpf wrote:
>
> Darf ich nochmal?
>
>     v=' KMGT'
>     def hmrd( x):
>         ord = 1024.
>         i = 0
>         while x > ord:
>             x /= ord
>             i += 1
>         return '%7.2f%cB' % (x, v[i])

Hmm, hab mir erlaubt, ein paar Änderungen vorzunehmen, aber die 
Grundidee ist natürlich viel besser. Vielen Dank für die Anregungen!

Das ist dabei rausgekommen:

def fquant(val, prec = 2, sep = ','):
    """ format data quantities in human readable form """
    v = '\0KMGTPEZY'
    d, i = 1024.0, 0
    while val > d and i < len(v) - 1:
        val /= d
        i += 1
    r = '%.*f %cB' % (prec, val, v[i])
    if sep != '.':
        r = r.replace('.', sep)
    return r

Wer peta..yotta nicht braucht, löscht diese einfach. Spart dann ein 
paar Divisionen..

Pete