выражение, которое вы пытаетесь формат таков:
($row['OK_05']/$row['TotalMatch']) * 100
Так какой функции вы решите использовать потребности идти вокруг этого выражение.
Что касается использования функции, вам нужно выбрать тот, который возвращает строку, а не поплавок.
Если вы используете round
, а ваше выражение возвращает поплавок, округленный до числа с двумя нулями после десятичной точки, конечные нули не будут отображаться в результате. Например, echo round(92.0006829268, 2)
отобразит 92
, не92.00
. Поэтому не используйте round
, если вам нужно убедиться, что отображаются две десятичные знаки. round
- математическая функция, а не функция форматирования.
floor
действительно не полезен вообще здесь, так как он возвращает число без десятичных знаков.
Простой способ заключается в использовании sprintf
, как показано в некоторых других ответов.
echo sprintf("%.2f", ($row['OK_05']/$row['TotalMatch']) * 100);
Первый аргумент sprintf
является "%.2f"
, который представляет собой строку формата, указывающий, что второй аргумент должен отображаться как поплавок с двумя знаками после запятой. Второй аргумент - ваше выражение.
Использование bcdiv
, как предложено в другом ответе, также будет работать, но оно работает несколько иначе, чем sprintf
, и в некоторых случаях будет производить несколько иной результат.
sprintf
завершат к числу десятичных разрядов, заданных, так, например,
echo sprintf("%.2f", 926.89/10); // outputs 92.69
и bcdiv
усечет вместо этого, так
echo bcdiv(926.89, 10, 2); // outputs 92.68
Какой бы ни одна из этих работ для вас, сделайте это.
_round (92.682926829268, ** 2 **); _ должен быть вашим другом –
*, но я не получаю то, что хочу * - Пожалуйста, уточните. Мы не можем читать ваши мысли. – Mike
Да, что вы делаете? Код в вашем вопросе не включает пол или круг. Если вы можете показать, что вы сделали с этими функциями, кто-то может сказать вам, почему это не принесло вам желаемого результата. –