Почему .NET 5.0 и Framework в C # не возвращают одинаковое значение [дубликат]
Dec 28 2020
У меня есть два значения, как показано ниже,
V1 = 44194.291666666664
и v2 = 44193
.
Ниже операции возвращают разные значения в .NETCore и .Framework.
Результаты продукта | Арифметическая операция : (v1 - v2) | ToString () (v1 - v2) .ToString () |
---|---|---|
.NET5.0 результат | 1,2916666666642413 | «1,2916666666642413» |
Результат .NETFramework | 1,2916666666642414 | «1,29166666666424» |
Фрагмент кода
double v1 = 44194.291666666664;
double v2 = 44193;
double value = v1 - v2;
string output = (v1 - v2).ToString();
Ответы
1 JonathanG. Jan 07 2021 at 22:02
Это (вероятно) намеренно, начиная с .NET Core 3.0. См. Это сообщение в блоге об изменении:https://devblogs.microsoft.com/dotnet/floating-point-parsing-and-formatting-improvements-in-net-core-3-0/