On 08.06.15 23: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? Why
don't floats support "{:.Ns}"? (I know I can use "{!s}".)
"{:.3}" for floats is equivalent to "{:.3g}".
>>> "{:.3g}".format(-0.00666762259822)
'-0.00667'
>>> "%.3g" % -0.00666762259822
'-0.00667'
Format code 's' would produce incorrect and meaningless output for floats.
>>> "{!s:.3}".format(-0.00666762259822)
'-0.'
>>> "%.3s" % -0.00666762259822
'-0.'
>>> "{!s:.3}".format(-0.0000666762259822)
'-6.'
>>> "%.3s" % -0.0000666762259822
'-6.'
--
https://mail.python.org/mailman/listinfo/python-list