2012-10-20 16 views
5

Potrzebuję wyświetlić liczbę zmiennoprzecinkową z określoną liczbą miejsc dziesiętnych (zaokrąglenie w górę), w szczególności do dwóch miejsc po przecinku, nawet jeśli liczba nie zawiera części ułamkowej . Jednym ze znanych mi sposobów jest użycie następującej funkcji PHP: sprintf().Zawsze wyświetlaj określoną liczbę miejsc po przecinku w PHP (zaokrąglanie w górę)

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

Zwraca 123.00.

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

zwraca 123.46, ale poniższe elementy nie zwracają tego, czego potrzebuję.

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

oczekuję na powrót 123.46 ale tak nie jest. Zwraca 123.45. Chociaż nie jest to ogromna różnica, muszę w obu przypadkach zwrócić 123.46.


Może to zrobić funkcja round(). echo round(123.455, 2); i echo round(123.4555, 2); return 123.46 w obu przypadkach, ale nie mogę myśleć o użyciu tej funkcji, ponieważ jeśli część ułamkowa nie jest obecna, nie wyświetla w ogóle cyfr dziesiętnych. jak echo round(123, 2); daje 123 i potrzebuję 123.00.

Czy istnieje funkcja w PHP, aby to osiągnąć?

Odpowiedz

Powiązane problemy