Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Две цифры в точном рейтинге?

Две цифры в точном рейтинге?


     09.04.2023    Все вопросы » Общие вопросы по PHP    587

вопрос
Есть строка с выводом рейтинга.

$tpl->set('{rating_nums}', str_replace(",", ".", round($row['rating'] / max(1,$row['vote_num']),1))); // Точная оценка

Что нужно поменять в данном коде чтобы было 2 числа всегда?
Сейчас Выводит 0 если нет рейтинга. Надо 0.0 Тоже самое и с другими значениями например сейчас 7 а надо 7.0

Ответа пока нет


10 комментариев

Mau
Юзер

Mau - 11 апреля 2023 13:18 -

Пробуйте:
$tpl->set('{rating_nums}', number_format(round($row['rating'] / max(1,$row['vote_num']), 1), 1, '.', ''));

ну, и кеш сбросить...

Kentavr
Юзер

Kentavr - 11 апреля 2023 18:50 -

Спасибо, вариант рабочий. Но есть один нюанс. Если к примеру 1 человек поставил рейтинг 10, то выводит 3 цифры вот так 10.0

Mau
Юзер

Mau - 12 апреля 2023 11:02 -

$ratingNums = number_format(round($row['rating'] / max(1,$row['vote_num']), 1), 1, '.', '');

if ( $ratingNums >= 10 ) {
	$tpl->set('{rating_nums}', floor($ratingNums));
} else {
	$tpl->set('{rating_nums}', $ratingNums);
}

dj-avtosh
PHP-developer

dj-avtosh - 12 апреля 2023 15:28 -

($ratingNums = number_format(round($row['rating'] / max(1,$row['vote_num']), 1), 1, '.', '')) && $ratingNums >= 10 && $ratingNums = floor($ratingNums);

$tpl->set('{rating_nums}', $ratingNums);

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 12 апреля 2023 15:36 -

или так:

$tpl->set('{rating_nums}', ($ratingNums = number_format(round($row['rating'] / max(1,$row['vote_num']), 1), 1, '.', '')) >= 10 ? floor($ratingNums) : $ratingNums);

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 11 апреля 2023 20:24 -

$ratingFormat = round($row['rating'] / max(1,$row['vote_num']), 1);

strlen($ratingFormat) < 2 && $ratingFormat = sprintf("%0.1f", $ratingFormat);

$tpl->set('{rating_nums}', $ratingFormat);

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Kentavr
Юзер

Kentavr - 11 апреля 2023 20:27 -

Спасибо, теперь вроде как надо


Kentavr
Юзер

Kentavr - 11 апреля 2023 21:21 -

А как сделать точку между цифрами? Просто теперь запятая стала в рейтинге 7,5 вместо 7.5

dj-avtosh
PHP-developer

dj-avtosh - 12 апреля 2023 02:26 -

за деньги

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

SX2
Эксперт

SX2 - 12 апреля 2023 11:21 -

$ratingFormat = str_replace(',', '.', round($row['rating'] / max(1,$row['vote_num']), 1));

Самая сложная часть работы – решиться приступить к ней.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх