Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas al redondear

Estas en el tema de Problemas al redondear en el foro de PHP en Foros del Web. Hola amigos, una vez mas acudo a vosotros porque yo no doy con la solución a este problema. Tengo que hacer cálculos con los datos ...
  #1 (permalink)  
Antiguo 21/07/2014, 02:32
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 9 meses
Puntos: 0
Sonrisa Problemas al redondear

Hola amigos, una vez mas acudo a vosotros porque yo no doy con la solución a este problema.
Tengo que hacer cálculos con los datos de un array, y siempre me da el mismo resultado “CERO”, la operación es la siguiente:

$porcp[$n]=($pultimo - $p[$n])/($p[$n]*100);
$porcp[$n]=round($porcp[$n],2);

Si quito el redondeo, el resultado es bueno, en mi caso da 6,7 "con trillones de decimales", si pongo number_format vuelve a petar dando cero como resultado.
He intentado esta otra formula:

$aux20=(($pultimo - $p[$n])/($p[$n]*100))*10/10;
$porcp[$n]=number_format ($aux20,2);

y el resultado vuelve a ser cero, estoy enloquecido, por favor una manita.

Muchas gracias a todos
  #2 (permalink)  
Antiguo 21/07/2014, 03:48
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Problemas al redondear

Yo el calculo lo aria de está manera:

$porcp[$n]=($pultimo - $p[$n]) * ($p[$n] / 100);
  #3 (permalink)  
Antiguo 21/07/2014, 04:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problemas al redondear

Solo como suposición: Tal vez tienes alguna configuración que utiliza la coma para separar decimales y, tanto round() como number_format(), rechazan el número por esa coma.

Si fuera el caso intenta:

Código PHP:
Ver original
  1. $porcp[$n]=number_format (str_replace(',', '.', $aux20), 2);
  2. echo $porcp[$n];
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 21/07/2014, 04:09
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Problemas al redondear

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Yo el calculo lo aria de está manera:

$porcp[$n]=($pultimo - $p[$n]) * ($p[$n] / 100);


Pero ocurre lo mismo, si lo pongo tal cual, da un resultado con 300 decimales, si lo pongo así:
$porcp[$n]=($pultimo - $p[$n]) * ($p[$n] / 100);
$porcp[$n]=number_format ($porcp[$n],2);

el resultado una vez mas es cero.

Gracias por tu comentario
  #5 (permalink)  
Antiguo 21/07/2014, 04:14
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Problemas al redondear

Cita:
Iniciado por Triby Ver Mensaje
Solo como suposición: Tal vez tienes alguna configuración que utiliza la coma para separar decimales y, tanto round() como number_format(), rechazan el número por esa coma.

Si fuera el caso intenta:

Código PHP:
Ver original
  1. $porcp[$n]=number_format (str_replace(',', '.', $aux20), 2);
  2. echo $porcp[$n];



Que yo sepa no, es mas, en esta web estoy trabajando siempre con el punto como separador decimal, que es lo que a mi me interesa, ya que tiene que ser compatible con datos anglosajones.
Voy a probar el código que comentas, reportaré el resultado.
Gracias amigos.
  #6 (permalink)  
Antiguo 21/07/2014, 04:21
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Problemas al redondear

Cita:
Iniciado por Triby Ver Mensaje
Solo como suposición: Tal vez tienes alguna configuración que utiliza la coma para separar decimales y, tanto round() como number_format(), rechazan el número por esa coma.

Si fuera el caso intenta:

Código PHP:
Ver original
  1. $porcp[$n]=number_format (str_replace(',', '.', $aux20), 2);
  2. echo $porcp[$n];

Comprobado, no es eso, no me había dado cuenta, pero cuando saco el numero por pantalla el resultado es 0.00, de verdad que me estoy volviendo majara. En el mismo programa utilizo muchas veces el number_format sin problema, no puedo entenderlo.
  #7 (permalink)  
Antiguo 21/07/2014, 07:16
Avatar de jcv2001  
Fecha de Ingreso: junio-2014
Mensajes: 10
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Problemas al redondear

Hola amigos, os comunico que ya me funciona, el error estaba en los paréntesis del divisor, la operación queda de la siguiente manera dando el resultado adecuado:

$porcp[$n]=($pultimo - $p[$n])/$p[$n]*100;
$porcp[$n]=number_format ($porcp[$n],2);

Muchas gracias a todos una vez mas por estar siempre atentos.
Saludos

Etiquetas: matematicas, 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.