On Mon, Jun 8, 2015, at 16:32, Skip Montanaro wrote: > This is counterintuitive: > > >>> "{:.3}".format(-0.00666762259822) > '-0.00667' > >>> "{:.3f}".format(-0.00666762259822) > '-0.007' > >>> "%.3f" % -0.00666762259822 > '-0.007' > >>> "{:.3s}".format(-0.00666762259822) > ValueError Unknown format code 's' for object of type 'float' > > Why does the first form display five digits after the decimal point?
Because it's three significant figures. Using .3 alone with a float is equivalent to %.3g, not %.3f > Why don't floats support "{:.Ns}"? (I know I can use "{!s}".) Why would they? The old style didn't support %.Ns either. If you want a width like "%50s" it's {!s:50}. But if you're using !s (or %s with the old style) you don't get to specify the significant digits, only the field width, so it's not clear what old-style code you're trying to find an equivalent to. -- https://mail.python.org/mailman/listinfo/python-list