Foros del Web » Programando para Internet » PHP »

problemas con Divición de variables

Estas en el tema de problemas con Divición de variables en el foro de PHP en Foros del Web. Tengo un problema, al dividir variables me salen muchisimos nomeros periodicos... "7.8181818181818", Como ago para que no suceda? Código PHP:        if( $ratingtot == 0 ...
  #1 (permalink)  
Antiguo 04/05/2003, 12:18
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
problemas con Divición de variables

Tengo un problema, al dividir variables me salen muchisimos nomeros periodicos... "7.8181818181818", Como ago para que no suceda?

Código PHP:

      
if($ratingtot==0){
      echo 
"Sin Puntos";
      }else{
      
$rating $rating $ratingtot;
      echo 
"$rating";
      } 
Saludos, Desde ya muchas gracias....
  #2 (permalink)  
Antiguo 04/05/2003, 13:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si quieres limitar el numero de decimales tienes number_format(). Si lo que quieres es redondear el resultado tienes round(), ceil() y floor().

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/05/2003, 13:33
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Seria limitar a 2 decimales, como quedaria usando number_format(). ?
  #4 (permalink)  
Antiguo 04/05/2003, 13:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Existe en este foro un mensaje con las FAQs. Y si no mal recuerdo, una de ellas es sobre el number_format(). Y si no, en www.php.net en el manual tienes ejemplos y las definiciones de las funciones.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 04/05/2003, 14:27
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Lo que hay en el FAQs no responde a mi pregunta o soy yo el que no entiende...

Lo que busco es que el numero quede xx,xx, porque en estos momentos el resultado de la divicion me queda xx, xxxxxxxxxxxxx siendo decimales periodicos.
  #6 (permalink)  
Antiguo 04/05/2003, 16:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Nukelino .. El ejemlo de la FAQ es bastante claro .. pero si quieres mas información al respecto, ya te han aconsejado que leas la fuente oficial de la definición de esa función: "number_format()" ..

Fijate en la definción de la función:

string number_format ( float number[, int decimals [, string dec_point [, string thousands_sep]]])

Mira los ejemplos ..
http://www.php.net/manual/es/function.number-format.php


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 05/05/2003, 09:03
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Muchas gracias, utilise el manual de php.net y encontre que lo que necesitaba era utilizar substr

la divicion delimitando los decimales me quedo asi:

Código PHP:
      if($ratingtot==0){
      echo 
"<center>0</center>";
      }else{
      
$puntos $rating $ratingtot;
      
$puntos substr$puntos0);
      echo 
"<center>$puntos</center>"

Saludos
  #8 (permalink)  
Antiguo 05/05/2003, 09:14
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Aunque con subst estas "cortando" la cadena, y no redondeandola.

Que pasará cuando el resultado sea 100.00?? te cortará el ultimo 0...

Mira, solo tienes que tomar los consejos como te los han puesto. Esta gente sabe lo que dice!

Código PHP:
if($ratingtot==0){
      echo 
"<center>0</center>";
      }else{
      
$puntos $rating $ratingtot;
      
$puntos number_format($puntos,2);
      echo 
"<center>$puntos</center>"
Saludos!
__________________
Manoloweb
  #9 (permalink)  
Antiguo 05/05/2003, 09:20
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Muy bien... lo tomare para otros casos.
Tome substr porque los numeros solo son xx,xx , no pasan de alli, es un sist de votos, toma 10 como max. asi que no hay problema.

Saludos, Muchas gracias
  #10 (permalink)  
Antiguo 05/05/2003, 09:37
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
No se que tan preciso quieras ser con tus ratings pero citando tu ejemplo inicial:

"7.8181818181818"

Tu sistema te dará: 7.81

Lo correcto sería: 7.82

Esto último lo podrías conseguir con lo siguiente:

Código PHP:
number_format(round($puntos,2),2); 
Saludos!
__________________
Manoloweb
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 05:48.