Perché .NET 5.0 e Framework in C # non restituiscono lo stesso valore [duplicato]
Dec 28 2020
Ho due valori come di seguito,
V1 = 44194.291666666664e v2 = 44193.
Le operazioni seguenti restituiscono valori diversi in .NETCore e .Framework
| Risultati del prodotto | Operazione aritmetica : (v1 - v2) | ToString () (v1 - v2) .ToString () |
|---|---|---|
| Risultato .NET5.0 | 1.2916666666642413 | "1.2916666666642413" |
| Risultato .NETFramework | 1.2916666666642414 | "1.29166666666424" |
Snippet di codice
double v1 = 44194.291666666664;
double v2 = 44193;
double value = v1 - v2;
string output = (v1 - v2).ToString();
Risposte
1 JonathanG. Jan 07 2021 at 22:02
Questo è (probabilmente) di progettazione a partire da .NET Core 3.0. Vedi questo post del blog sulla modifica:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/