.NET の浮動小数点と文字列化のちょっとした話
.NET Core (いつのバージョンかよくわかりません) での Breaking Change な話
var a = 0.0; var b = -0.0; Console.WriteLine(a == b); Console.WriteLine($"{a.ToString() == b.ToString()} , a={a:f1} , b={b:f1}");
上記コードを .NET Framework 4.8 と .NET 6 のコンソールアプリで実行してみます
- .NET Framework 4.8
True True , a=0.0 , b=0.0
- .NET 6
True False , a=0.0 , b=-0.0
という感じになります
"-0.0" って文字列が出てきて初めてこんな変更があったことを知りました
これかな?