Почему .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/