Menubar

viernes, 13 de noviembre de 2015

Redondear hacia arriba o hacia abajo en PHP

Por J. Manuel Mar H. Editar
Compartir en Facebook
Compartir en Twitter
Compartir en MeWe
Enviar a Reddit
Guardar en Internet archive
Guardar en  archive.today
Enviar por email
Logo PHP PHP con el paso de los años se ha convertido en un lenguaje muy usado en la red para crear sitios web con prácticamente infinidad de opciones. Y aunque php cumple con muchísimas de nuestras espectactivas en ocasiones se queda algo corto con sus funciones, afortunadamente siempre es posible reemplazar o extender su funcionalidad mediante código fuente propio, ese es el caso de las funciones de hoy: roundtoup y roundtodown.

  PHP cuenta con funciones para redondear números, pero es una función (desde mi punto de vista personal) no muy clara. Lo que se pretende con las funciones roundtoup/roundtodown es redondear un número hacia arriba o hacia abajo si es decimal, no importa si la fracción es próxima o no a un punto, si tiene una fracción entonces sube o baja, no más.

Publicidad


Función roundtoup

function roundtoup($number)
{

    if((double)$number == 0)
      return 0;
    else
    {
 
        if((int)strpos("_".trim($number), ".") > 0)
        {

              $integer = substr(trim($number), 0, strpos(trim($number), "."));
              $integer++;
     
         }
         else
             $integer = $number;
     
         return $integer;
     
    }
     
}

  Como pueden ver la función roundtoup extrae del número la parte entera y lo incrementa en una unidad, así pues entonces podemos hacer que el número se redondé hacia arriba, sin importar si la parte fraccionaria se aproxima al siguiente valor o no, de lo contrario, si no hay fracción se retorna el número original.

Función roundtodown

function roundtodown($number)
{

    if((double)$number == 0)
      return 0;
    else
    {
 
         if((int)strpos("_".trim($number), ".") > 0)
           $integer = substr(trim($number), 0, strpos(trim($number), "."));
        else
          $integer = $number;

        return $integer;
     
    }
     
}

  La función roundtodown es más simple, se basa en la misma idea, se extrae del número la parte entera, pero no se incrementa en ninguna unidad, solo se retorna esa sección pues lo que queremos es redondear hacia abajo, sin importar si la parte fraccionaria se aproxima al valor anterior o no, de lo contrario, si no hay fracción se retorna el número original.

Procedencia de las imágenes:
File: Icono PHP
URL: http://techtastico.com/files/2008/06/php-logo.png
Licencia: Creative Commons

¿Te gustó este post?, entonces si lo deseas puedes apoyarnos para continuar con nuestra labor, gracias.




Licencia de Creative Commons Esta obra está bajo una licencia de Creative Commons Reconocimiento 4.0 Internacional, haga clic aquí para conocer más detalles.


Compartir:



Danos tu voto
Comunidad Kynamio
Directorio de blogs, ¡agrega el tuyo!
Programas para el mantenimiento de Windows
Blog de seguridad informatica