இந்த தீர்வில், சரத்தை PHP இல் மிதவைக்கு மாற்றுவது எப்படி என்பதை நாம் கற்றுக்கொள்வோம்.
தீர்வு 1.
கொடுக்கப்பட்ட (நேர்மறையான) மிதக்கும் புள்ளி எண்ணுக்கு, $டலரன்ஸ்க்கும் குறைவான பிழையுடன் கூடிய பகுத்தறிவு தோராயத்தைக் கண்டறியும் PHP செயல்பாடு.
<?php
function float2rat($n, $tolerance = 1.e-6) {
$h1=1; $h2=0;
$k1=0; $k2=1;
$b = 1/$n;
do {
$b = 1/$b;
$a = floor($b);
$aux = $h1; $h1 = $a*$h1+$h2; $h2 = $aux;
$aux = $k1; $k1 = $a*$k1+$k2; $k2 = $aux;
$b = $b-$a;
} while (abs($n-$h1/$k1) > $n*$tolerance);
return "$h1/$k1";
}
printf("%s\n", float2rat(66.66667)); # 200/3
printf("%s\n", float2rat(sqrt(2))); # 1393/985
printf("%s\n", float2rat(0.43212)); # 748/1731