很抱歉,如果我不清楚:
如何根据MinRate和MaxRate
计算平均评分例如: minRate = 0或1且 MaxRate = 2或3或4或5或0
我如何计算评级?
更新结束
我正在实施一个5星评级系统,我的表结构有两列: 1)MinRate 2)MaxRate
所以我的问题是:如何计算平均评分?
这是我在5星评级实施中的表现。
int[] {7, 0, 0, 8, 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