Terry J. Reedy added the comment:

Merely from reading the docs, including the hex() and {}.format sections, I 
consider the current
  '%x' % 1.5 == '1'
a bug in that I would expect either a Type or Value Error
or a hex fraction(!) ('1,8') matching the core of the output of float.hex(1.5). 
But given the history, I agree that a deprecation notice is needed first.

In 3.3 section 6.1.3.1. Format Specification Mini-Language, integer and float 
conversions are in separate tables, so no confusion is possible. In 3.3 section 
4.7.2. printf-style String Formatting there is just one table with all 
conversion chars. I think the table would be clearer if it were somehow split 
into three sections: perhaps 3 otherwise blank rows containing  'integer', 
'float', and 'other' in the Conversion column. (I don't know if this works for 
.rst tables.)

I think I would change the table for 3.4 with a note 8 that 'o', 'x', and 'X' 
currently accept floats by calling int() on the value, but that this implicit 
behavior is deprecated, so one should be explicit. The DeprecationWarning 
should also give the same remedy.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19995>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to