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ąć?