Перевод из десятичной дроби в периодическую дробь. Функция.
<?php
function period($numerator,$denominator){
$array=array();
$modulo=$numerator%$denominator;
$counter=1;
while($modulo!=0){
if($array[$modulo-1]!=0)break;
$array[$modulo-1]=$counter;
$modulo*=10;
$explode=explode('.',$modulo/$denominator);
$period.=$explode[0];
$modulo%=$denominator;
$counter++;
}
if($modulo!=0){
$part=explode('.',$numerator/$denominator);
return $part[0].'.'.substr($period,0,$array[$modulo-1]-1).'('.substr($period,$array[$modulo-1]-1).')';
}
else return $numerator/$denominator;
}
echo period(3870,36).'<br>';
echo period(397,259).'<br>';
echo period(183498,36).'<br>';
echo period(333,496);
?>
Результат работы функции:
107.5
1.(532818)
5097.1(6)
0.6713(709677419354838)
Урок закончен.
Комментарии:
Нету комментариев для вывода...