Warum .NET 5.0 und Framework in C # nicht denselben Wert zurückgeben [Duplikat]

Dec 28 2020

Ich habe zwei Werte wie unten,

V1 = 44194.291666666664und v2 = 44193.

Die folgenden Operationen geben unterschiedliche Werte in .NETCore und .Framework zurück

Produktergebnisse Arithmetische Operation : (v1 - v2) ToString () (v1 - v2) .ToString ()
.NET5.0 Ergebnis 1.2916666666642413 1.2916666666642413
.NETFramework-Ergebnis 1.2916666666642414 1.29166666666424

Code-Auszug

        double v1 = 44194.291666666664;
        double v2 = 44193;

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

Antworten

1 JonathanG. Jan 07 2021 at 22:02

Dies ist (wahrscheinlich) beabsichtigt ab .NET Core 3.0. Siehe diesen Blog-Beitrag zur Änderung:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/