Conversione decimale float in frazione in php

C
calcolare l'espressione matematica da una stringa usando eval
Nuove funzionalità in PHP 8.0

In questa soluzione, impareremo come convertire decimale float in numero di frazione in PHP.

soluzione 1.

Funzione PHP che trova un'approssimazione razionale di un dato numero in virgola mobile (positivo) con un errore relativo inferiore a $tolleranza.

<?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
calcolare l'espressione matematica da una stringa usando eval
Nuove funzionalità in PHP 8.0

Rete di tutor

Condividi questo

Impara PHP dalla A alla Z