Foros del Web » Programando para Internet » PHP »

Pasaje de decimal a fracción en PHP

Estas en el tema de Pasaje de decimal a fracción en PHP en el foro de PHP en Foros del Web. Hola amigos del foro, estuve buscando por varios lugares y no pude encontrar un algoritmo que me pase un número decimal a fracción... e hice ...
  #1 (permalink)  
Antiguo 18/04/2014, 16:42
Avatar de diegosloop  
Fecha de Ingreso: junio-2013
Ubicación: Resistencia - Chaco
Mensajes: 3
Antigüedad: 10 años, 10 meses
Puntos: 0
Pasaje de decimal a fracción en PHP

Hola amigos del foro, estuve buscando por varios lugares y no pude encontrar un algoritmo que me pase un número decimal a fracción... e hice este código, ahora, lo que no puedo hacer es que me devuelva la fracción simplicada: ejemplo 5/4 = 1 1/4, se entiende? acá va el código! y graciias de antemano



function dec2frac($dec){
$num=$dec;
if($num<0)
{
$neg=true;
$num=abs($num);
}
else
{
$neg=false;
}
$x=$y=0;
do{
do{ $y++; $res=$x/$y; }
while($res!=$num and $y<10000);
if($res==$num)
{
break;
}
$x++;
$y=1;
}
while($res!=$num and $x<100000);
for($i=100;$i>0;$i--)
{
$a=$x/$i;
$b=$y/$i;
if(is_int($a) and is_int($b))
{
break;
}
}
if($neg)
{
$fraccion[0]=$a*(-1);
}
else
{
$fraccion[0]=$a;
}
$fraccion[1]=$b;
return $fraccion[0].'/'.$fraccion[1];
}
  #2 (permalink)  
Antiguo 19/04/2014, 14:44
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Pasaje de decimal a fracción en PHP

para lograr la fracción simple he googleado un poco y en este mismo foro encontré un código que no he probado pero parece que funciona

http://www.forosdelweb.com/f18/minim...or-php-745223/

pruébalo y dinos si funciona :D
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 19/04/2014, 16:44
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Pasaje de decimal a fracción en PHP

Cita:
(Quiero pasar de) número decimal a fracción... e hice este código, ahora, lo que no puedo hacer es que me devuelva la fracción simplicada: ejemplo 5/4 = 1 1/4
Estas confundido....... 5/4 a 1 1/4 ... ¿ donde ves decimales ahi ?

Ambas son fracciones... las ultimas segun recuerdo de la primaria se llaman "fracciones mixtas" y es una bobada hacer eso:

1) Es el numerador mayor que el denominador ?
2a) SINO... nada que hacer--> [FIN]
2b) SI se cumple.......entonces: restas al numerador el denominador
4) Vuelves al paso 1)

Te lo escribi recursivo... pero obvio que haciendo una division te evitas todo eso :P
__________________
Salu2!

Etiquetas: decimal, soporte-y-sugerencias
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 15:40.