Curious Omission In New-Style Formats
Terry Reedy
tjreedy at udel.edu
Mon Jul 11 14:54:34 EDT 2016
On 7/11/2016 1:24 PM, Ethan Furman wrote:
> On 07/11/2016 09:28 AM, Steven D'Aprano wrote:
>> On Tue, 12 Jul 2016 01:04 am, Ian Kelly wrote:
>
>> Er, what? I count *five* digits in "00123", not three.
>>
>> You seem to be assuming that "precision" can only refer to digits
>> after the
>> decimal place, but that's a dubious proposition.
>
> I will readily admit to not having a maths degree, and so of course to
> me saying the integer 123 has a precision of 5, 10, or 99 digits seems
> like hogwash to me.
I do have an undergraduate degree in math and a career in statistics,
and I cannot remember seen 'precision' used in relation to integers. So
I would call it a 'non-standard extension' of the notion.
> But I'm always willing to learn. So please explain what 123 with a
> precision of five integer digits means,
What it could mean is that we have an count selected from the range
00000 to 99999 inclusive. But what I just said is the usual way of
saying that, as it does not limit the lower and upper limits to 0s and 9s.
> and what to do we gain by saying such a thing?
Confusion.
Precision is usually used in reference to measurement, and while
measurement is based on counting, it is not the same thing. If 123 is a
count, then its precision is 1 count, not k digits. Or one could say
that all digits are precise. What is ambiguous without context is
whether counts with trailing 0s, like 120 or 100 are exact or rounded.
100, as a cound, could have a precision of 1, 2, or 3 (significant)
digits. Context sometimes says things like 'to the nearest hundred
thousand'.
In any case, I think it an improvement to say that '0x00123' has a field
width of 7 rather than a 'precision' of 5.
>>> '{:#07x}'.format(0x123) # specifiy field width
'0x00123'
>>> "%#0.5x" % 0x123 # specify int precision
'0x00123'
Thus, my title for a post noting the same change might be "Upgrade in
new-style formats".
(format and If one want leading 0s,
--
Terry Jan Reedy
More information about the Python-list
mailing list