2012-10-20 18 views
5

Devo visualizzare un numero in virgola mobile con un numero specificato di cifre decimali (arrotondando per eccesso), in particolare fino a due cifre decimali anche se il numero non ha alcuna parte frazionaria . Un modo che conosco è utilizzando la funzione PHP sprintf() come segue.Visualizza sempre il numero di cifre decimali specificato in PHP (arrotondando per eccesso)

echo sprintf("%0.2f", 123); 

Riporta 123.00.

echo sprintf("%0.2f", 123.4555); 

rendimenti 123.46 ma il seguente non tornare quello che mi serve.

echo sprintf("%0.2f", 123.455); // 5 is removed - the right-most digit. 

mi aspetto di tornare 123.46, ma non è così. Restituisce 123.45. Anche se non è un'enorme differenza, in qualche modo devo restituire 123.46 in entrambi i casi.


La funzione round() può farlo. echo round(123.455, 2); e restituiscono 123.46 in entrambi i casi ma non riesco a pensare di utilizzare questa funzione perché se la parte frazionaria non è presente, non mostra affatto cifre decimali. come echo round(123, 2);123 e ho bisogno di 123.00.

Esiste una funzione in PHP per raggiungere questo obiettivo?

risposta

7
number_format(123.455, 2, '.', '') 
Problemi correlati