我有 24 个价格,一天中的每个小时一个价格,我需要找到它们的平均值(日平均值)。
但是,我无法正确计算平均价格,而且我找不到关于如何在 Javascript 中计算平均价格/四舍五入小数的准确算法。每个方法(parseFloat、toFixed())似乎偶尔会产生不准确的结果。
有谁知道在 Javascript 中计算平均价格/四舍五入的准确方法?我不只是在谈论仅适用于以下价格数组的东西,而是适用于任何价格(小数)数组的东西......
这是我现在拥有的。它在 Chrome 中返回 178.00。但它应该返回 178.01。
// Rounding Function
function roundDecimal(value) {
return Number(Math.round(value+'e2')+'e-2');
};
var priceSum = 0;
var prices = [23.4,24.4,24.68,25,25.1,30.81,851.19,646.47,659.24,707.7,759.23,124.69,37.93,53.25,23.4,23.8,23.4,23.4,50.57,37.78,25,24.55,23.4,23.73]
for(var x = 0; x < prices.length; x ++) {
priceSum = priceSum + prices[x];
console.log(priceSum);
};
var priceAverage = roundDecimal( priceSum / prices.length );
console.log("Daily Average is: "+priceAverage);
最佳答案
请引用这个问题https://stackoverflow.com/a/588014/536984
JavaScript float 学不适合进行财务计算,最好以美分表示价格,这样就没有小数
var array = [2340, 2440, 2468, 2500, 2510, 3081, 85119, 64647, 65924, 70770, 75923, 12469, 3793, 5325, 2340, 2380, 2340, 2340, 5057, 3778, 2500, 2455, 2340, 2373];
Math.round(array.reduce(function (a, b) { return a + b }) / array.length)
关于Javascript - 查找平均价格(即四舍五入)的准确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740488/