我的评论很好,而我的评论不好。我需要根据此评论来计算评分。
示例:
如何计算评分?我需要邮政获得5星。我需要得分不超过5星。我可能需要这个公式吗?
$score = ($good_reviews * $bad_reviews) / 5; //get rating stars
但是我没有得到5个或更少的数字。我该怎么做呢?
答案 0 :(得分:0)
该公式无法满足您的需求。它只会乘以乘以乘以乘以5,然后除以5。例如((100乘以20乘以20)/ 5)=400。从5中淘汰!
如果您需要得分不超过5星,则需要使用范围。
计算好坏之间的百分比,然后进行if检查。
例如:
$percentage = (($good - $bad) / $good) * 100;
if($percentage => 100) {
//5 starts
} else if ($percentage < 100 && $percentage => 80) {
//4 stars
} else if ($percentage < 80 && $percentage => 60) {
//3 stars
} else if ($pecentage < 60 && $percentage => 40) {
//2 starts
} else {
//1 star
}
那只是一个基本的例子。有多种方法可以解决此问题。您需要根据需要进行调整,然后尝试是否适合您。
我做得很快,所以没有测试。请检查并确定它是否适合您。我只是想给你一个主意。
答案 1 :(得分:0)
也许你想要这个:
$rating = $good_reviews
? intval ( 5.4 * $good_reviews / ( $good_reviews + $bad_reviews))
: 0;
现在逐步:
SUM := $good_reviews + $bad_reviews
是所有评论的总和。RATE := $good_reviews / SUM
是$ good_reviews对评论总数的总体评价。结果在0.000到1.000的范围内。 intval()
将数字从0减少到5(您的星星)。?:
的替代方案避免了零误差除法。