Skip to content

Utf8Parser discrepancy in double parsing between .NET 2.2 and 3.0 #30712

Description

@ppekrol

Hi,

I have following code:

            string bigNumString = string.Join(string.Empty, "17976931348623158" + string.Join("", Enumerable.Repeat(0,293)));
            var bytes = Encoding.UTF8.GetBytes(bigNumString);

            if (Utf8Parser.TryParse(bytes.AsSpan(), out double value, out var consumed) && bytes.Length == consumed)
            {
                Console.WriteLine(value); // .NET Core 3.0
                return;
            }

            throw new InvalidOperationException("Not parsed!"); // .NET Core 2.2

In .NET Core 2.2 it throws an exception, but in .NET Core 3.0 (preview8) it returns Infinity. Is this by design?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions