Limitar número de decimales en PHP sin redondear

publicado por: Anonymous

Tengo un pequeño código que hace cierto cálculo y como saben si se imprimen decimales en PHP salen muchos, lo que quiero es limitar este numero a 5 decimales.

Trate de usar round y aunque con esto se puede especificar un número máximo de decimales también los redondea y no, yo solo quiero un numero de decimales sin que se redondee el resultado.

Por ejemplo:

El resultado lanza:

4.6472883

Y lo que necesito es:

4.64728 (5 decimales)

Lo que round hace es:

4.64729

Este es la pequeña parte que hace el calculo por si les es de utilidad

//$l_value: es un valor que ingresa el usuario
//$l_mam y $l_ang: son valores ya definido

$to_m = $l_value*$l_mam;
$l_r = $to_m/$l_ang;
echo"<div class='in_val_res' >&nbsp;&nbsp;".round($l_r,5)." unidades</div>";

solución

Puedes usar la función nativa bcdiv.

bcdiv divide dos números de precisión arbitraria con el agregado que te permite recortar el resultado a una escala determinada sin redondear.

string bcdiv ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Si la división es entre 1 entonces el resultado siempre es el número pero usas la escala para recortar a tu gusto.

Ejemplo

$valor = 100.56789;

$data1 = bcdiv($valor, '1', 1);
$data2 = bcdiv($valor, '1', 2);
$data3 = bcdiv($valor, '1', 3);
$data4 = bcdiv($valor, '1', 4);

echo "$data1<br/>";
echo "$data2<br/>";
echo "$data3<br/>";
echo "$data4<br/>";

Resultado

100.5
100.56
100.567
100.5678
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *