.NET 5.0とC#のフレームワークが同じ値を返さない理由[重複]
私は以下のような2つの値を持っています、
V1 = 44194.291666666664
およびv2 = 44193
。
以下の操作は、.NETCoreと.Frameworkで異なる値を返します
製品の結果 | 算術演算:(v1-v2) | ToString()(v1-v2).ToString() |
---|---|---|
.NET5.0の結果 | 1.2916666666642413 | 「1.2916666666642413」 |
.NETFrameworkの結果 | 1.2916666666642414 | 「1.29166666666424」 |
コードスニペット
double v1 = 44194.291666666664;
double v2 = 44193;
double value = v1 - v2;
string output = (v1 - v2).ToString();
回答
1 JonathanG.
これは(おそらく).NET Core3.0以降の設計によるものです。変更については、次のブログ投稿を参照してください。https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/