Pourquoi .NET 5.0 et Framework en C # ne retournent pas la même valeur [duplicate]
Dec 28 2020
J'ai deux valeurs comme ci-dessous,
V1 = 44194.291666666664
et v2 = 44193
.
Les opérations ci-dessous retournent des valeurs différentes dans .NETCore et .Framework
Résultats produits | Opération arithmétique : (v1 - v2) | ToString () (v1 - v2) .ToString () |
---|---|---|
Résultat .NET5.0 | 1,2916666666642413 | "1.2916666666642413" |
Résultat .NETFramework | 1,2916666666642414 | "1.29166666666424" |
Extrait de code
double v1 = 44194.291666666664;
double v2 = 44193;
double value = v1 - v2;
string output = (v1 - v2).ToString();
Réponses
1 JonathanG. Jan 07 2021 at 22:02
C'est (probablement) par conception à partir de .NET Core 3.0. Voir cet article de blog sur le changement:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/