Код: Выделить всё
using System;
public class FloatingPointMadness
{
public static void Main(string[] args)
{
float f = 0.1f;
Console.WriteLine ($"Real value is: {f:F16}");
}
}
< /code>
Я использую .net Framework 4.7.2. Поскольку десятичное 0,1 не может быть представлено точно с арифметикой с плавающей запятой, я ожидаю, что это произведет что -то вроде: < /p>
Real value is: 0.1000000014901161
, но вместо этого я получаю:
Код: Выделить всё
Real value is: 0.1000000000000000
онлайн -пример. Если я перейду к использованию компилятора .net 9, я получаю то, что ожидаю. Что здесь происходит?
Подробнее здесь: https://stackoverflow.com/questions/794 ... int-errors