Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Redondear entero por exceso o por defecto

Estas en el tema de Redondear entero por exceso o por defecto en el foro de PHP en Foros del Web. tengo una situación, resulta que debo calcular unas comisiones del 5%, y pagos del 95%, sin embargo, necesito redondear los valores por exceso o defecto, ...
  #1 (permalink)  
Antiguo 23/08/2016, 14:18
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 6 meses
Puntos: 20
Redondear entero por exceso o por defecto

tengo una situación, resulta que debo calcular unas comisiones del 5%, y pagos del 95%, sin embargo, necesito redondear los valores por exceso o defecto, por ejemplo, si el valor es 4.700, el 5% es 235, para este caso necesito que el valor final sea 200 y para el 95% es 4465, necesito que el valor sea 4500, he estado mirando round() pero solo trabaja con decimales.

Alguna idea de como lo puedo lograr.
__________________
Say no more.......
  #2 (permalink)  
Antiguo 23/08/2016, 15:12
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redondear entero por exceso o por defecto

Divide por 100, redondeas, y multiplicas por 100:

235/100 = 2.35
round(2.35) = 2.00
2.00*100=200

  #3 (permalink)  
Antiguo 23/08/2016, 15:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Redondear entero por exceso o por defecto

Seguro que revisaste el manual de round()?

Si el parámetro de posiciones decimales es menor que cero, entonces redondeas sobre unidades, decenas, centenas, etc.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 23/08/2016, 18:42
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 6 meses
Puntos: 20
Respuesta: Redondear entero por exceso o por defecto

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
Divide por 100, redondeas, y multiplicas por 100:

235/100 = 2.35
round(2.35) = 2.00
2.00*100=200

Muchas Gracias, justo lo que necesitaba
__________________
Say no more.......
  #5 (permalink)  
Antiguo 23/08/2016, 20:14
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 1 mes
Puntos: 123
Respuesta: Redondear entero por exceso o por defecto

Sinceramente la opción de triby me parece más acertada

Código PHP:
$numero=4700;
$cincoPorCienRound round($numero*0.05, -2PHP_ROUND_HALF_DOWN);
$noventaYCincoPorCien $numero $cincoPorCienRound
Único requisito, PHP > 5.2

Es verdad que en la documentación por la descripción que da parece que solo funciona con decimales. Pero si te fijas en los ejemplo ves que encuentras este caso:
Código PHP:
echo round(1241757, -3); // 1242000 
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 23/08/2016 a las 20:29
  #6 (permalink)  
Antiguo 23/08/2016, 20:36
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redondear entero por exceso o por defecto

Realmente mi solución es re fea, pero funciona, lo hice porque me acordé de uno de mis primeros ejercicios aprendiendo c++ esto hace muuucho tiempo. Saludos a todos.


Etiquetas: defecto, entero, 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 23:59.