Как вариант - реализовать самым банальным способом, изначально высчитывать рейтинг от 0
до 1
, а затем умножать его на 5
.
Также, нужно не забыть о граничном случае, и когда оценок нет - возвращать рейтинг 0
.
Как это будет выглядеть:
Пусть, рейтинг - это отношение числа лайков к общему числу оценок.
Тогда, в случае:
- Лайков 20422
- Дизлайков 1002
Имеем: 20422 / (20422 + 1002) = 0.9532 * 5 = 4.766 ~ 4.8
.
Общая формула: 5 * (x / (x + y))
, где x
- количество лайков, y
- количество дизлайков.
И в вариантах:
- Лайков 0
- Дизлайков 1002
- Лайков 20422
- Дизлайков 0
Согласно формуле получаем 0
и 5
, соответственно.
P.S А вообще, это только один из вариантов (самый очевидный) и придумать их можно очень много, в зависимости от логики вашего проекта.