Вход на сайт
Округления с операторами арифметических действий и присваивания
1538 просмотров
Перейти к просмотру всей ветки
в ответ Срыв покровов 02.01.24 13:38
У вас просто случайно так получилось. Результат зависит не только от того, что непосредственно в Round придёт в виде парамера, но и от х. Параметр вы округлили, а х - нет.
Там погрешность округления в последнем разряде при переводе из двоичной системы в десятичную. Поэтому надо периодически округлять до нужной точности. У меня точность с запасом (три знака после запятой, и сами числа не больше 6-7 знаков), и в принципе можно округлять лишь при выводе, при строковом форматировании. Но всё равно не нравится периодически выхватывать эти девятки и единички. Кроме того, при определённом MidpointRounding всякие х,9999999 и х,00000001 легко превращаются не в то, что нужно.