Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-找到平均价格(即整数小数)的准确方法是什么?_Javascript_Math_Finance_Quantitative Finance - Fatal编程技术网

Javascript-找到平均价格(即整数小数)的准确方法是什么?

Javascript-找到平均价格(即整数小数)的准确方法是什么?,javascript,math,finance,quantitative-finance,Javascript,Math,Finance,Quantitative Finance,我有24个价格,每天每小时一个价格,我需要找到它们的平均值(每日平均值) 但是,我无法正确计算价格的平均值,也找不到一个精确的算法来计算Javascript中价格的平均值/小数的四舍五入。每个方法(parseFloat,toFixed())似乎偶尔都会产生不准确的结果 有人知道Javascript中平均价格/整数小数的准确方法吗?我所说的不仅仅是对下面的价格数组有效的东西,而是对任何价格数组(小数)有效且防弹的东西。 这是我现在拥有的。它返回178.00铬。但它应该返回178.01 // Rou

我有24个价格,每天每小时一个价格,我需要找到它们的平均值(每日平均值)

但是,我无法正确计算价格的平均值,也找不到一个精确的算法来计算Javascript中价格的平均值/小数的四舍五入。每个方法(parseFloat,toFixed())似乎偶尔都会产生不准确的结果

有人知道Javascript中平均价格/整数小数的准确方法吗?我所说的不仅仅是对下面的价格数组有效的东西,而是对任何价格数组(小数)有效且防弹的东西。

这是我现在拥有的。它返回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);
//舍入函数
函数roundDecimal(值){
返回编号(数学四舍五入(值+'e2')++'e-2');
};
var-priceSum=0;
var价格=[23.4,24.4,24.68,25,25.1,30.81851.19646.47659.24707.7759.23124.69,37.93,53.25,23.4,23.8,23.4,23.4,50.57,37.78,25,24.55,23.4,23.73]
对于(变量x=0;x
请参考此问题

JavaScript浮点数学不是用来做金融计算的,最好用美分来表示价格,这样就没有小数了

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浮点数学不是用来做金融计算的,最好用美分来表示价格,这样就没有小数了

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)

正如其他地方所说,整数最容易赚钱,但要想精确到0.5美分,先除以100,再除以价格总数

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];

var total=prices.map(function(n){
    return n*100;
}).reduce(function(a, b){
    return a+(b || 0);
});

Math.round((total/prices.length))/100;

/*  returned value: (Number)
178.01
*/

正如其他地方所说,整数最容易赚钱,但要想精确到0.5美分,先除以100,再除以价格总数

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];

var total=prices.map(function(n){
    return n*100;
}).reduce(function(a, b){
    return a+(b || 0);
});

Math.round((total/prices.length))/100;

/*  returned value: (Number)
178.01
*/

令人惊叹的使用整数是我一直在寻找的防弹答案。非常感谢。令人惊叹的使用整数是我一直在寻找的防弹答案。非常感谢。