2012-05-03 10 views
5

Quiero convertir el valor flotante de 8 dígitos después del punto flotante de 2 dígitos después de la coma flotante flotante ..desea mostrar exactamente 2 dígitos después del punto

Ej. $ a = 2.200000 ==> 2.20

Estoy usando la función redonda de php. El problema con la ronda es si mi número es 2.200000. Convierte el número en 2.2. Quiero salida como 2.20

¿Puede alguien sugerir la manera posible?

código real

$price = sprintf ("%.2f", round(($opt->price_value + ($opt->price_value * $this->row->prices[0]->taxes[0]->tax_rate)), 2)); 

quiero poner a cabo como si mi número flotante es 2,2000000. entonces debería devolverme 2.20. pero en este momento me está volviendo 2.2

Respuesta

17

Esto hace lo que yo creo que está pidiendo:

<?php 

$a = 2.20032324; 
$f = sprintf ("%.2f", $a); 
echo "$a rounded to 2 decimal places is '$f'\n"; 

$a = 2.2000000; 
$f = sprintf ("%.2f", $a); 
echo "$a rounded to 2 decimal places is '$f'\n"; 

resultados:

[[email protected] ~]$ php t.php 
2.20032324 rounded to 2 decimal places is '2.20' 
2.2 rounded to 2 decimal places is '2.20' 

añadí dos casos de prueba

+0

salido todavía no es adecuada .. –

+0

me deja poner algo de código para usted .. –

+0

@SLAYER: Debe eliminar los 'Round()' operaciones de cálculo. El formato '.2f' hace todo lo que quiere. – wallyk

-1

Pruebe el siguiente código, puedes obtener tu resultado.

 $a = 2.200000; 
     echo number_format((float)$a,2,'.',''); 
-1

tratar $val = round($a * 100)/100;

Cuestiones relacionadas