Javascript - 查找平均价格(即四舍五入)的准确方法是什么?

标签 javascript math finance quantitative-finance

我有 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/

相关文章:

javascript - 是什么 !! JavaScript 中的(不是 not)运算符?

javascript - 将带有html的字符串分成两个字符串

javascript - WP JSON API Angular.js 用户登录

python - 如何加速嵌套循环?

python - 可变移动平均线

javascript - Amcharts - 当图表滚动条滚动时可排序的 div 移动

c# - 将数字列表分组为类似数字的固定集合(首选循环移位)

java - 线性回归和 Java 日期

c# - 这个 if 语句有多少种组合

C++ 贷款合格金额