未チェックのuintのC#オーバーフロー動作
私はこのコードをhttps://dotnetfiddle.net/でテストしています: using System; public class Program { const float scale = 64 * 1024; public static void Main() { Console.WriteLine(unchecked((uint)(ulong)(1.2 * scale * scale + 1.5 * scale))); Console.WriteLine(unchecked((uint)(ulong)(scale* scale + 7))); } } .NET 4.7.2でコンパイルすると、 859091763 7 しかし、Roslynまたは.NET Coreを実行すると、 859091763 0 なぜこれが起こるのですか?