我打算编写一个允许网页评级系统的第三方脚本,但我只希望它嵌入的每个网页占用数据库中的一行(或者更准确地说是一个文档,因为我正在使用NoSQL路线)。我的评级伪代码将如下所示:
function update(page, rate) {
collection.get({
page: page
}, function callback(err, doc) {
if (!err) {
var rating = doc.rating,
votes = doc.votes;
collection.update({
page: page
}, {
votes: votes + 1,
rating: (rating * votes + rate) / (votes + 1) // here's the iffy part
});
}
});
}
有没有办法改进算法以避免浮点值的截断错误,或者这首先不是问题?
答案 0 :(得分:1)
有没有办法改进算法以避免浮点值的截断错误,或者这首先不是问题?
是。将所有评级的总和和评级数作为整数存储在数据库中,并且只显示它们的平均值。