Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #31295 > unrolled thread
| Started by | Adrien <adnothing@gmail.com> |
|---|---|
| First post | 2012-10-15 14:58 +0200 |
| Last post | 2012-10-25 12:49 +0000 |
| Articles | 3 — 3 participants |
Back to article view | Back to comp.lang.python
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: simple string format question Adrien <adnothing@gmail.com> - 2012-10-15 14:58 +0200
Re: simple string format question Piet van Oostrum <piet@vanoostrum.org> - 2012-10-24 23:48 -0400
Re: simple string format question Neil Cerutti <neilc@norwich.edu> - 2012-10-25 12:49 +0000
| From | Adrien <adnothing@gmail.com> |
|---|---|
| Date | 2012-10-15 14:58 +0200 |
| Subject | Re: simple string format question |
| Message-ID | <mailman.2200.1350305892.27098.python-list@python.org> |
Le 15/10/2012 14:12, Neal Becker a écrit :
> Is there a way to specify to format I want a floating point written with no more
> than e.g., 2 digits after the decimal? I tried {:.2f}, but then I get all
> floats written with 2 digits, even if they are 0:
>
> 2.35 << yes, that's what I want
> 2.00 << no, I want just 2 or 2.
Maybe you're looking for "{:.3g}"
print "{:.3g}".format(2)
# '2'
print "{:.3g}".format(2.00)
# '2'
print "{:.3g}".format(2.35)
# '2.35'
print "{:.3g}".format(2.356) # this rounds up
# '2.36'
Cheers,
-- Adrien
[toc] | [next] | [standalone]
| From | Piet van Oostrum <piet@vanoostrum.org> |
|---|---|
| Date | 2012-10-24 23:48 -0400 |
| Message-ID | <m27gqfkya5.fsf@cochabamba.vanoostrum.org> |
| In reply to | #31295 |
Adrien <adnothing@gmail.com> writes:
> print "{:.3g}".format(2.356) # this rounds up
But:
>>> print "{:.3g}".format(12.356)
12.4
>>> print "{:.3g}".format(123.356)
123
--
Piet van Oostrum <piet@vanoostrum.org>
WWW: http://pietvanoostrum.com/
PGP key: [8DAE142BE17999C4]
[toc] | [prev] | [next] | [standalone]
| From | Neil Cerutti <neilc@norwich.edu> |
|---|---|
| Date | 2012-10-25 12:49 +0000 |
| Message-ID | <aesqqgFlq7dU1@mid.individual.net> |
| In reply to | #32086 |
On 2012-10-25, Piet van Oostrum <piet@vanoostrum.org> wrote:
> Adrien <adnothing@gmail.com> writes:
>
>> print "{:.3g}".format(2.356) # this rounds up
>
> But:
>
>>>> print "{:.3g}".format(12.356)
> 12.4
>>>> print "{:.3g}".format(123.356)
> 123
The precision is a decimal number indicating how many digits
should be displayed after the decimal point for a floating
point value formatted with 'f' and 'F', or before and after the
decimal point for a floating point value formatted with 'g' or
'G'. For non-number types the field indicates the maximum field
size - in other words, how many characters will be used from
the field content. The precision is not allowed for integer
values.
So g will print a specific number of significant digits, so it
won't do what Adrien wants.
And f will print a fixed number of digits after the decimal
point, so it won't do want Adrien wants.
Adrien, you will need to do some post-processing on fixed point
output to remove trailing zeroes.
>>> print("{:.2f}".format(2.1).rstrip('0'))
2.1
>>> print("{:.2f}".format(2.127).rstrip('0'))
2.13
--
Neil Cerutti
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web