Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/10/2015, 17:43
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Redondeo especial

¿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
  1. <?php
  2.  
  3. function nearest($value) {
  4.   $steps = [24, 48, 72, 96, 120];
  5.  
  6.   foreach ($steps as $num) {
  7.     $diff = abs($num - $value);
  8.  
  9.     if ($diff <= 12) {
  10.       return $num;
  11.     }
  12.   }
  13.  
  14.   return -1;
  15. }
  16.  
  17. var_dump(nearest(12)); // int(24)
  18. var_dump(nearest(16)); // int(24)
  19. var_dump(nearest(32)); // int(24)
  20. var_dump(nearest(37)); // int(48)
  21. var_dump(nearest(59)); // int(48)
  22. var_dump(nearest(75)); // int(72)
  23. var_dump(nearest(98)); // int(96)
  24. var_dump(nearest(100)); // int(96)
  25. var_dump(nearest(110)); // int(120)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.