1
我打算編寫一個允許網頁評分系統的第三方腳本,但我只希望它嵌入的每個網頁在數據庫中佔用一行(或者更準確地說是一個文檔,因爲我正在採用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
});
}
});
}
是否有完善的算法,以避免截斷誤差爲浮點值的方式,還是將不會是擺在首位的問題嗎?
並非所有的JS數字浮點? – stark
是的,他們是...我在問這個程序是否會隨着時間的推移累積截斷錯誤,因爲它會將平均值乘以每次更新時的總和。 –