Округление до ближайшего 0,5 в matlab
Как я могу округлить десятичное число до ближайшего 0.5 в matlab? Например. Я хочу, чтобы 16.625 был округлен до 16.5
3 ответов
Если вы идете умножить на 2 - раунд-деление на 2 маршрута, вы можете получить некоторые (очень маленькие) числовые ошибки. Вы можете сделать это с помощью mod
чтобы избежать этого:
x = 16.625;
dist = mod(x, 0.5);
floorVal = x - dist;
newVal = floorVal;
if dist >= 0.25, newVal = newVal + 0.5; end
вы могли бы сделать это за меньшее количество шагов, но здесь я разбил его, чтобы вы могли видеть, что делает каждый шаг.