On 2012-10-25, Piet van Oostrum <p...@vanoostrum.org> wrote: > Adrien <adnoth...@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 -- http://mail.python.org/mailman/listinfo/python-list