2012-05-03 15 views
5

voglio convertire il valore fluttuante di 8 cifre dopo virgola mobile a 2 cifre dopo il punto di galleggiamento ..vuole visualizzare esattamente 2 cifre dopo il punto

Eg. $ a = 2.200000 ==> 2.20

Sto usando la funzione circolare di php. Problema con round è se il mio numero è 2.200000 converte numero in 2.2. Voglio l'output come 2.20

Qualcuno può suggerire la via possibile?

codice vero e proprio

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

voglio mettere fuori come se il mio numero mobile è 2,2 milioni. allora dovrebbe restituirmi 2.20. ma in questo momento mi sta tornando 2.2

risposta

17

Questo non fa quello che penso che stai chiedendo:

<?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"; 

risultati:

[[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' 

ho aggiunto due casi di test

+0

venire fuori non è ancora adeguata .. –

+0

Mettiamola po 'di codice per voi .. –

+0

@SLAYER: È necessario rimuovere le rotonde '' operazioni() dal calcolo. Il formato '.2f' fa tutto ciò che vuoi. – wallyk

-1

provare il seguito codice, è possibile ottenere il risultato.

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

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

Problemi correlati