2015-10-23 2 views
1

Я следую первому и второму ответам here. Я вычитал среднее значение из значения, а затем console.log() его, чтобы проверить его. Затем я использую for-loop перебирать каждое значение, как:Квадратные значения в массиве (JavaScript) плюс ошибка с плавающей запятой

for (var i = 0; i < myArray.length; i++) { 
    Math.pow(squaredArray[i], 2); 
}; 

Я также теперь получаю ошибку с плавающей запятой это выглядит, когда я добавил for-loop в квадрат значения.

Что я делаю неправильно?

Fiddle here.

+0

Какова ваша ошибка с плавающей запятой? Вы делаете 'y = Math.sqrt (z); x = Math.pow (y, 2); 'и находим, что' x! = z' иногда? – Phylogenesis

+0

'x = Math.pow (myArray [i] - mean)' и обнаруживает, что есть ошибки «0.000000004» время от времени. – adin

+1

Это не похоже на ошибку с плавающей запятой, это просто похоже на то, как работает арифметика с плавающей точкой (небольшие значения, как известно, неточно). – ssube

ответ

1

Похоже, вы пытаетесь Переберите значения в туАггау, умиротворять их и хранить их в squaredArray.

for (var i = 0; i < myArray.length; i++) { 
    squaredArray[i] = Math.pow(myArray[i], 2); 
}; 

«ошибка с плавающей точкой» было потому, что вы пытаетесь сделать это:

Math.pow(undefined, 2); 
0

Если вы не знаете, на входе, вы можете защитить с обработкой исключений:

for (var i = 0; i < myArray.length; i++) { 
    try { 
     squaredArray[i] = Math.pow(squaredArray[i], 2); 
    } 
    catch (e) { 
     console.log('input [' + i + '] ' + squareArray[i] + ' caused an exception!'); 
     console.log(e); 
    } 
}; 

Кроме того, ваш исходный код был квадратным, но ничего не делал с ним, поэтому я позволил себе вернуть результат самому себе.

Смежные вопросы