Dlaczego .NET 5.0 i Framework w C # nie zwracają tej samej wartości [duplikat]
Dec 28 2020
Mam dwie wartości jak poniżej,
V1 = 44194.291666666664
i v2 = 44193
.
Poniższe operacje zwracają różne wartości w .NETCore i .Framework
Wyniki produktów | Operacja arytmetyczna : (v1 - v2) | ToString () (v1 - v2) .ToString () |
---|---|---|
Wynik .NET5.0 | 1.2916666666642413 | „1,2916666666642413” |
Wynik .NETFramework | 1.2916666666642414 | „1,29166666666424” |
Fragment kodu
double v1 = 44194.291666666664;
double v2 = 44193;
double value = v1 - v2;
string output = (v1 - v2).ToString();
Odpowiedzi
1 JonathanG. Jan 07 2021 at 22:02
Jest to (prawdopodobnie) zgodne z projektem w wersji .NET Core 3,0. Zobacz ten wpis na blogu dotyczący zmiany:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/