如何计算平均评级

时间:2011-07-12 02:58:13

标签: c# logic

很抱歉,如果我不清楚:

如何根据MinRate和MaxRate

计算平均评分

例如: minRate = 0或1且 MaxRate = 2或3或4或5或0

我如何计算评级?

更新结束

我正在实施一个5星评级系统,我的表结构有两列: 1)MinRate 2)MaxRate

所以我的问题是:如何计算平均评分?

这是我在5星评级实施中的表现。

int[] {7, 0, 0, 8, 5}; 

这意味着:

  • 7位用户将该文章评为1
  • 0位用户将文章评为2
  • 0位用户将该文章评为3
  • 8位用户将该文章评为4
  • 5位用户将该文章评为5

5 个答案:

答案 0 :(得分:3)

int[] x =  {7, 0, 0, 8, 5}; 
/* 
    7 x 1 star
    0 x 2 stars
    0 x 3 stars
    8 x 4 stars
    5 x 5 stars
*/

float totalVoters = 0;
float totalPoints = 0;

for(i = 1; i <= x.length; i++)
{
    //add 7, 0, 0, 8, 5
    totalVoters += x[i];

    /* add
        7 x 1 star = 7,
        0 x 2 stars = 0,
        0 x 3 stars = 0,
        8 x 4 stars = 32,
        5 x 5 stars = 25
    */
    totalPoints += x[i] * i;
}

response.write(totalPoints/totalVoters); //get the average

答案 1 :(得分:1)

我真的不知道ASP.NET,但平均值只是总数除以项目数:

(int[0] + int[1] * 2 + int[2] * 3 + int[3] * 4 + int[4] * 5) / 5

所以在一个循环中(不起作用,因为int是保留的,但你明白了):

float average = 0;

for (int i = minrate; i < maxrate; i++) {
  average += int[i] * i;
}

average /= maxrate;

答案 2 :(得分:0)

((7*1)+(8*4)+(5*5))/(7+8+5) = 3.2

答案 3 :(得分:0)

这是一些伪代码:


double avg = 0;
for (int i = 0; i < arr.Length; i++) // arr.Length should be the same as MaxRate
{
    avg += arr[i] * (i + MinRate);
}
avg /= arr.length;

答案 4 :(得分:0)

这就是我所做的

var fs = require('fs');
var path = require('path');
var fileLoc = path.join(__dirname,'file.json');
var content = fs.readFileSync(fileLoc,'utf8');
content = JSON.parse(filecontent);  // error occurs here