Deutsch

Округления с операторами арифметических действий и присваивания

02.01.24 15:34
Re: Округления с операторами арифметических действий и присваивания
 
alex445 коренной житель

У вас просто случайно так получилось. Результат зависит не только от того, что непосредственно в Round придёт в виде парамера, но и от х. Параметр вы округлили, а х - нет.


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

 

Перейти на