Mailing List Archive

JSON int/float WAS Re: PSC #040(?) - Perl SV Flags special
> On Oct 15, 2021, at 10:34 AM, Nicholas Clark <nick@ccl4.org> wrote:
>
> On Fri, Oct 15, 2021 at 10:18:36AM -0400, Dan Book wrote:
>> On Fri, Oct 15, 2021 at 4:03 AM Nicholas Clark <nick@ccl4.org> wrote:
>>
>>> I'm not sure that we can push this to distinguishing between "started as an
>>> integer literal" vs "started a floating point", *and* I'm not sure if we
>>> need to. The big problem we're trying to solve here is correctly generating
>>> formats such as JSON and YAML that *are* sensitive to strings vs numbers,
>>> and I didn't think that they (or their other-language consumers) were
>>> sensitive to "what sort of a number is it?"
>>>
>>
>> I can't speak to the others, but JSON does distinguish integers and floats;
>> some implementations have deigned to preserve roundtripping NVs with a
>> trailing '.0' though there are a couple problems with this. Perl NVs pop
>> into existence at some unexpected times, such as the result of 2**2. And
>> this isn't as important IME as creating, say, a JSON document with boolean
>> values.
>
> Oh my. How does (or "can?") Javascript itself manage to roundtrip JSON like
> this?

With all due respect, I think it’s a misrepresentation to say that JSON “distinguishes” ints from floats. The format itself, as described in RFC 8259, draws no such distinction; that’s something folks have layered on top of the baseline format.

-FG