¿No sería más simple tener un array de los valores a buscar?
Y dado que la diferencia siempre es de 24, entonces el redondeo se haría a la mitad de dicho valor para buscar aproximaciones.
Código PHP:
Ver original<?php
function nearest($value) {
$steps = [24, 48, 72, 96, 120];
foreach ($steps as $num) {
$diff = abs($num - $value);
if ($diff <= 12) {
return $num;
}
}
return -1;
}