Foros del Web » Programando para Internet » PHP »

Ayuda con porcentajes por favor!!

Estas en el tema de Ayuda con porcentajes por favor!! en el foro de PHP en Foros del Web. parece que este codigo me esta tomando el pelo, lo veo muy clarito y funciona mal... quiero calcular porcentaje de victorias (para un juego), pero ...
  #1 (permalink)  
Antiguo 15/02/2005, 09:14
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 9 meses
Puntos: 4
Ayuda con porcentajes por favor!!

parece que este codigo me esta tomando el pelo, lo veo muy clarito y funciona mal...

quiero calcular porcentaje de victorias (para un juego), pero los que nunca jugaron obviamente no tienen porcentaje entonces lo calculo asi:

Código PHP:
function calcular_porc($tot$win$loss$extra)
{
    if (
$tot)
    {
        
$result $win $tot 100;
        if (
$result$porcT number_format($result1'.''');
        else 
$porcT $result;
    }else{
        
$porcT NULL;
    }
    return 
$porcT;

Ahora cuando quiero guardar los datos hago asi:

Código PHP:
if (is_null($porc_A[$i])) fwrite($d"\$porc_A[$i] = \"-\";\r\n");
else 
fwrite($d"\$porc_A[$i] = \"".$_porc_A[$i]."%\";\r\n"); 
Pero siempre me escribe la rayita aunque el porcentaje sea por ejemplo 80%!!!! porque???
  #2 (permalink)  
Antiguo 15/02/2005, 10:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 120
Antigüedad: 19 años, 4 meses
Puntos: 0
Me he fijado que manejas dos variables diferentes:
$porc_A[$i]
$_porc_A[$i]
Por lo visto la primera siempre es nula y por eso no funciona, pero no es un problema de la funcion.
Además, si pones
if (is_null($porc_A[$i])) fwrite($d, "\$porc_A[$i] = \"-\";\r\n");
el \ que va delante de $porc_A[$i] anula e $ y no entiende esto como una variable.

Te pongo un ejemplo que si funciona, por si te sirve para algo:

<?php
function calcular_porc($tot, $win, $loss, $extra)
{
if ($tot)
{
$result = $win / $tot * 100;
if ($result) $porcT = number_format($result, 1, '.', '');
else $porcT = $result;
}else{
$porcT = NULL;
}
return $porcT;
}

$d = fopen("prueba.txt", "w");
/* Uso la variable i como contador de partidos jugados, supongo que siempre gana 3 y pierde 2 ... aunque juegue 0, para simplificar */
for($i=0;$i<10;$i++)
{
$porc_A[$i]=calcular_porc ($i,5,3,0);
if (is_null($porc_A[$i]))
{ $a = fwrite($d, "\ $porc_A[$i] = \"-\";\r\n");}
else
{ $a = fwrite($d, "\ $porc_A[$i] = \"".$_porc_A[$i]."%\";\r\n");}

}
fclose($d);

?>
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 06:16.