Foros del Web » Programando para Internet » PHP »

Recoger variable en forma de fracción

Estas en el tema de Recoger variable en forma de fracción en el foro de PHP en Foros del Web. Estoy haciendo un pequeño ejemplo en el que se pide al usuario que introduzca el valor de una variable. Normalmente los usuarios introducen: 1/1600, 1/400...en ...
  #1 (permalink)  
Antiguo 24/09/2010, 06:13
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 13 años, 5 meses
Puntos: 1
Recoger variable en forma de fracción

Estoy haciendo un pequeño ejemplo en el que se pide al usuario que introduzca el valor de una variable. Normalmente los usuarios introducen:

1/1600, 1/400...en forma de fracción.

Código PHP:
$P $_GET['P']; 
El problema que tengo que luego cuando pulsan el botón calcular, les hace la rais cuadrada con esta función:

Código PHP:
sqrt($P
Y el problema es que si han introducido el campo en forma de fracción solo toma el valor del numerador. Como podria hacer para que independientemente del formato en fracción o con coma, pueda después obtener la raíz cuadrada de forma correcta?

Muchas gracias!
  #2 (permalink)  
Antiguo 24/09/2010, 07:32
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años
Puntos: 1516
Respuesta: Recoger variable en forma de fracción

Puedes usar explode o preg_split para tomar los valores, de acuerdo a lo que te hayan indicado.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 24/09/2010, 07:39
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 8 años, 9 meses
Puntos: 331
Respuesta: Recoger variable en forma de fracción

Puedes usar algo así (se puede simplificar):

Código PHP:
<?php
    $var 
"1/6000"//Variable introducida por el usuario
    
$nums explode("/"$var); //La separo
    
$nuevo_valor $nums[0]/$nums[1]; //Recalculo
    
echo "<h3> Fracción: ".$nuevo_valor."</h3>";
    echo 
"<h3> Raíz: ".sqrt($nuevo_valor)."</h3>";
?>
Espero que ayuda, salu2
  #4 (permalink)  
Antiguo 24/09/2010, 08:13
 
Fecha de Ingreso: enero-2006
Ubicación: Barcelona, España
Mensajes: 126
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Recoger variable en forma de fracción

Gracias por vuestra respuesta. He modificado un poco el código de repara2 y parece que funciona. Lo que veo que ocurre es que si el usuario introduce 1/1600 lo calcula correctamente pero si ahora hay un usuario que escribe: 0.00625, no consigue calcular la raíz cuadrada.

Habria algun modo para que la función detectara si el usuario ha introducido en formato fracción o decimal y poder calcularlo?

Muchas gracias!
  #5 (permalink)  
Antiguo 24/09/2010, 08:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años
Puntos: 1516
Respuesta: Recoger variable en forma de fracción

Con preg_split o sencillamente ingresar dos explode.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 24/09/2010, 08:43
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 8 años, 9 meses
Puntos: 331
Respuesta: Recoger variable en forma de fracción

Prueba cambiando el tipo de variable y modifica a tu gusto:

Código PHP:

<?php
    $tipo 
false;
    
$var "1.6000"//Variable introducida por el usuario, puede ser $var = "1.6";
    
    
if(strpos($var"/")){ echo "<h1>Es Fracción</h1>"$tipo "f";}
    if(
strpos($var".")){ echo "<h1>Es Decimal</h1>"$tipo "d";}
    
    switch (
$tipo){
        case 
"f":
         
$nums explode("/"$var); //La separo
    
$nuevo_valor $nums[0]/$nums[1]; //Recalculo
    
echo "<h3> Fracción: ".$nuevo_valor."</h3>";
    echo 
"<h3> Raíz: ".sqrt($nuevo_valor)."</h3>";
        break;
        
        case 
"d":
   
    echo 
"<h3> Raíz: ".sqrt($var)."</h3>";
            break;
    }
   

?>
salu2

Etiquetas: recoger, variables, formulario
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:30.