.NET 5.0とC#のフレームワークが同じ値を返さない理由[重複]

Dec 28 2020

私は以下のような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. Jan 07 2021 at 22:02

これは(おそらく).NET Core3.0以降の設計によるものです。変更については、次のブログ投稿を参照してください。https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/