Проблемы с производительностью Angular Hybrid в AngularJS Part - Mousemove вызывает 100% загрузку процессора

Для этого нужно всего лишь разделение и округление:

int value = 30;
int factor = 16;
int nearestMultiple = 
        (int)Math.Round(
             (value / (double)factor),
             MidpointRounding.AwayFromZero
         ) * factor;

Будьте осторожны, используя эту технику. Перегрузка Math.Round(double) считает, что злой мутант MidpointRounding.ToEven является наилучшим поведением по умолчанию, хотя то, что мы все узнали раньше в школе, это то, что CLR вызывает MidpointRounding.AwayFromZero. Например:

var x = Math.Round(1.5); // x is 2.0, like you'd expect
x = Math.Round(0.5); // x is 0. WAT?!
2
задан Michael B 18 January 2019 в 12:27
поделиться