>>>>> "Duncan" == Duncan Murdoch <[EMAIL PROTECTED]>
>>>>> on Mon, 18 Apr 2005 03:33:42 -0400 (EDT) writes:
>> On Sun, 17 Apr 2005, Jan T. Kim wrote:
>>
>>> On Sun, Apr 17, 2005 at 12:38:10PM +0100, Prof Brian Ripley wrote:
>>>> These are some points stimulated by reading about C history (and
>>>> related in their implementation).
>>>>
>>>>
>>>> 1) On some platforms
>>>>
>>>>> as.integer("0xA")
>>>> [1] 10
>>>>
>>>> but not all (not on Solaris nor Windows). We do not define what is
>>>> allowed, and rely on the OS's implementation of strtod (yes, not
>>>> strtol).
>>>> It seems that glibc does allow hex: C99 mandates it but C89 seems not
>>>> to
>>>> allow it.
>>>>
>>>> I think that was a mistake, and strtol should have been used. Then C89
>>>> does mandate the handling of hex constants and also octal ones. So
>>>> changing to strtol would change the meaning of as.integer("011").
>>>
>>> I think interpretation of a leading "0" as a prefix indicating an octal
>>> representation should indeed be avoided. People not familiar to C will
>>> have a hard time understanding and getting used to this concept, and
>>> in addition, it happens way too often that numeric data are provided
>>> left-
>>> padded with zeros.
Duncan> I agree with this: 011 should be 11, it should not be 9.
I agree (with Duncan and Jan).
I'm sure the current (decimal) behavior is implicitly used in
many places of people's code that reads text files and
manipulates it.
Martin
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel