Por que .NET 5.0 e Framework em C # não retorna o mesmo valor [duplicado]

Dec 28 2020

Eu tenho dois valores como abaixo,

V1 = 44194.291666666664e v2 = 44193.

As operações abaixo retornam valores diferentes em .NETCore e .Framework

Resultados do produto Operação aritmética : (v1 - v2) ToString () (v1 - v2) .ToString ()
Resultado .NET5.0 1.2916666666642413 "1.2916666666642413"
Resultado do .NETFramework 1.2916666666642414 "1.29166666666424"

Fragmento de código

        double v1 = 44194.291666666664;
        double v2 = 44193;

        double value = v1 - v2;
        string output = (v1 - v2).ToString();

Respostas

1 JonathanG. Jan 07 2021 at 22:02

Isso é (provavelmente) por design a partir do .NET Core 3.0. Veja esta postagem do blog sobre a mudança:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/