プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

.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 のコンソールアプリで実行してみます

True
True , a=0.0 , b=0.0
  • .NET 6
True
False , a=0.0 , b=-0.0

という感じになります

"-0.0" って文字列が出てきて初めてこんな変更があったことを知りました

これかな?

devblogs.microsoft.com