Foros del Web » Programando para Internet » PHP »

redondear un decimal

Estas en el tema de redondear un decimal en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 16/11/2017, 10:09
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 7 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
  #2 (permalink)  
Antiguo 16/11/2017, 10:50
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: redondear un decimal

Que demonios pasaba en tu cabeza cuando hiciste esa funcion? trate de leerla y entenderla pero me confundio a medio proceso jejeje

creo haber visto algo como lo que buscas entre las funciones de redondeo pero a falta de recordar como era el proceso yo lo haria de la siguiente forma

Código PHP:
Ver original
  1. <?php
  2. function redondeo($valor){
  3.     $decimal = $valor - intval($valor);
  4.     $check = $decimal >= 0.5 ? 0.5 : 0;
  5.     return intval($valor) + $check;
  6. }
  7.  
  8.  
  9. var_dump(redondeo(1.7));
  10. echo '<br>';
  11. var_dump(redondeo(2.4));
  12. echo '<br>';
  13. var_dump(redondeo(3.9));
  14. echo '<br>';
  15. var_dump(redondeo(5.1));
  16. echo '<br>';
  17. var_dump(redondeo(5.5));
  #3 (permalink)  
Antiguo 16/11/2017, 10:57
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: redondear un decimal

round() de PHP es lo mas facil que puedes encontrar:
Código PHP:
Ver original
  1. echo round(3.4);         // 3
  2. echo round(3.5);         // 4
  3. echo round(3.6);         // 4

si el numero es mayor o igual a 0.5 redondeará al siguiente, si es menor se quedara como ves: imprime 3 cuando es 3.4... y 4 cuando es 3.5 o mayor
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)

Etiquetas: decimal, redondear
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:59.