Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2017, 10:09
primary
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 13 años, 3 meses
Puntos: 5
redondear un decimal

hola necesito saber como puedo redondear un decimal pero el resultado solo puede ser numeros enteros o entero y medio es decir 1 o 1.5, 2,2.5,3 este redondeo lo quiero hacer hacia abajo es decir si el decimal es 1.88 quiero que lo redondee a 1.5 si es 2.3 a 2, 2.6 a 2.5, no se si se entiende mi pregunta.

estoy viendo las funciones de php como round con sus constantes pero no encuentro la logica para que funcione bien.


yo probe algo asi y funciona pero no se si es mucho lio y ahi algo mas sencillo:


$valor=9.66;

Código PHP:
Ver original
  1. if(is_float($valor)){
  2.     $par=explode(".",$valor);
  3.     $decimal=$par[1][0];
  4.     if($decimal!=5||$decimal!=0){
  5.         $total=$decimal;
  6.         for($i=$decimal;$i>0;$i--){
  7.             $numero=$total-1;
  8.             if($numero==0||$numero==5){
  9.                 if($numero==0){
  10.                     $num=$par[0];
  11.                     break;
  12.                 }else{
  13.                     $num=$par[0].".".$numero;
  14.                     break;
  15.                 }
  16.             }else{
  17.                 $total--;
  18.             }
  19.         }
  20.     }else{
  21.         if($decimal!=0){
  22.             $num=$par[0].".".$decimal;
  23.         }else{
  24.             $num=$par[0];
  25.         }
  26.     }
  27. }
  28. echo $valor;
  29. echo "<br>";
  30. echo $num;


alguien me puede ayudar?
saludos

Última edición por primary; 16/11/2017 a las 10:23