For American numbers

python MrJean1 at gmail.com
Sat Feb 12 21:54:38 EST 2005


Scott David Daniels wrote:
> 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
> Scott.Daniels at Acm.Org




More information about the Python-list mailing list