It seems there is a parser and formatter compliance between .Net framework and .NET (or .Net Core). .NET uses the standard IEEE 754-2008 it seems.
I've tried your code in .Net framework and .NET (from 3.1 onwards) it behaves as you mentioned.
The reason is already answered in the below stackoverflow question: Rounding issues .Net Core 3.1 vs. .Net Core 2.0/.Net Framework
Hope this helps!