From: Lacrima on
Hello!

I need to format a decimal (floating point) number in the following
way:
10 results in '10'
10.5 results in '10.5'
10.50 results in '10.5'
10.5678 results in 10.57

How can I achieve this using standard Python string formatting
operations?
Something like '%.2f' works almost as expected:
>>> '%.2f' % 10.5
'10.50'
>>> '%.2f' % 10.5678
'10.57'
>>> '%.2f' % 10
'10.00'
But I always need trailing zeros to be excluded, i.e. 10.5 should
result in '10.5' (not '10.50'), and 10 should result in '10' (not
'10.00').
So how can I do this?
Sorry for my English.
Thanks in advance.

with regards,
Maxim
From: Chris Rebert on
On Thu, Apr 1, 2010 at 2:08 AM, Lacrima <lacrima.maxim(a)gmail.com> wrote:
> Hello!
>
> I need to format a decimal (floating point) number in the following
> way:
> 10 results in '10'
> 10.5 results in '10.5'
> 10.50 results in '10.5'
> 10.5678 results in 10.57
>
> How can I achieve this using standard Python string formatting
> operations?
> Something like '%.2f' works almost as expected:
>>>> '%.2f' % 10.5
> '10.50'
>>>> '%.2f' % 10.5678
> '10.57'
>>>> '%.2f' % 10
> '10.00'
> But I always need trailing zeros to be excluded, i.e. 10.5 should
> result in '10.5' (not '10.50'), and 10 should result in '10' (not
> '10.00').
> So how can I do this?

('%.2f' % 10).rstrip('0').rstrip('.')

Cheers,
Chris
--
http://blog.rebertia.com