[Python-Dev] trunc() (original) (raw)

Eric Smith eric+python-dev at trueblade.com
Sun Jan 27 20:21:23 CET 2008


Guido van Rossum wrote:

On Jan 27, 2008 9:26 AM, Andrea Griffini <agriff at tin.it> wrote:

Anyway I want just to say that if "implicit" conversion from float to integer goes away then what happens to formatting conversion ? Removing that too IMO would break a lot of code and it's IMO very difficult to help fixing that. The formatting code could assign specific meanings. I suspect though that it was never meant to be possible to use %d with a float -- it just is one of the artifacts of using implicit conversion, and one not well-thought through. Note:

"%.0f" % 3.9999999999 '4' "%d" % 3.9999999999 '3' I think the latter is wrong and confusing.

format() has the same issue, for the same reason:

format(3.9, 'f') '3.900000' format(3.9, 'd') '3'

I never noticed this before, and it's a definite error. PEP 3101 says the valid types for float are 'eEfFgGn%' and an empty string. I'll remove the integer conversion in the float formatter.

Eric.



More information about the Python-Dev mailing list