elementtree and rounding questions
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Wed Jul 30 01:23:16 EDT 2008
En Wed, 30 Jul 2008 00:56:55 -0300, <jyoung79 at kc.rr.com> escribi�:
> One other question I had was about rounding floats. I was first looking
> at this syntax to round out to 6 decimal places if needed:
>
>>>> f = '508.5'
>>>> x = '%.6f' % (float(f)/72)
>>>> x
> '7.062500'
>
> However, in this instance I don't want the last 2 zeroes. So would it
> be better to do something like this:
>
>>> f = '508.5'
>>>> x = round(float(f)/72, 6)
>>>> x
> 7.0625
>
> I've been reading a bit about some rounding bugs, but am really not that
> knowledgeable about the subject. Does anyone have a preference of how
> they like to round as well as the result they see?
If all you need is to *display* the value - use formatting expressions
like %f, the locale variants, the Template class, or whatever.
If you want to *compute* something using the rounded value, use the
round/ceil/floor functions, or perhaps consider using the Decimal class
depending on your needs.
From the above, looks like you want to display the value using up to six
decimal places, avoiding right zeroes. So you just want to strip '0'
characters from the right side:
py> f = '508.5'
py> x = '%.6f' % (float(f)/72)
py> x
'7.062500'
py> x.rstrip('0')
'7.0625'
--
Gabriel Genellina
More information about the Python-list
mailing list