यस समाधानमा, हामी PHP मा स्ट्रिङलाई फ्लोटमा कसरी रूपान्तरण गर्ने भनेर सिक्नेछौं।
समाधान १.
PHP प्रकार्य जसले $ tolerance भन्दा कम सापेक्ष त्रुटिको साथ दिइएको (सकारात्मक) फ्लोटिंग बिन्दु नम्बरको तर्कसंगत अनुमान फेला पार्छ।
<?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