Kind of fun exercise (no good for British English).

    def units(value, units='bytes'):
        magnitude = abs(value)
        if magnitude >= 1000:
            for prefix in ['kilo mega giga tera peta '
                           'exa zetta yotta').split():
                magnitude /= 1000.
                if magnitude < 1000.:
                    break
        elif magnitude < 1:
            for prefix in ('milli micro nano pico femto '
                           'atto zepto yocto'.split():
                magnitude *= 1000.
                if magnitude >= 1.0:
                    break
            if magnitude < .001:
                return 'zero %s' % units
        else:
            prefix = ''
        if value < 0:
            return '-%.3f %s%s' % (magnitude, prefix, units)
        return '%.3f %s%s' % (magnitude, prefix, units)

--Scott David Daniels
[EMAIL PROTECTED]

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to