The following code seems to work fine in .NET 4.7.2, but stops working in .NET core :
(tested with https://dotnetfiddle.net/ )
Console.WriteLine(decimal.ToDouble(10500000000.000000000000m));
Console.WriteLine(Convert.ToDouble(10500000000.000000000000m));
Console.WriteLine((double)10500000000.000000000000m);
Before it correctly returned 10500000000
, now it is returning 10499999999.999998
Am I missing something?