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];
}