String formatting with fixed width

Steve Holden steve at holdenweb.com
Fri Mar 16 10:04:50 EDT 2007


Steve Holden wrote:
> Alexander Eisenhuth wrote:
>> Hello alltogether,
>>
>> is it possible to format stings with fixed width of let's say 7 character. T 
>> need a floating point with 3 chars before dot, padded with ' ' and 3 chars after 
>> dot, padded with '0'.
>>
>> Followingh is my approach
>>  >>> f = 21.1
>>  >>> s = "%.03f" % f
>>  >>> s
>> '21.100'
>>
>> But there are missing ' '. How can I get that? (For bigger numbers than 999 they 
>> might be cut: 1021 -> 021)
>>
>   >>> def f(x):
>   ...   return "%7.3f" % (x % 1000.0)
>   ...
>   >>> for x in (9.9, 99.9, 999.9, 9999.9):
>   ...   print f(x)
>   ...
>    9.900
>   99.900
> 999.900
> 999.900
>   >>>
> 
... but (unfortunately?):

  >>> f(-9999.99)
'  0.010'
  >>>

You don't say what you want to do about negative numbers, so this may or 
may not be significant.

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb     http://del.icio.us/steve.holden
Blog of Note:          http://holdenweb.blogspot.com
See you at PyCon?         http://us.pycon.org/TX2007




More information about the Python-list mailing list