数组中的平方值 (JavaScript) 加上浮点误差
Square values in an array (JavaScript) plus floating point error
我正在关注第一个和第二个答案here。我已经从值中减去平均值然后 console.log()
它来检查它。然后我使用 for-loop
遍历每个值,如:
for (var i = 0; i < myArray.length; i++) {
Math.pow(squaredArray[i], 2);
};
我现在也遇到了一个浮点错误,当我添加 for-loop
来计算值的平方时看起来像这样。
我做错了什么?
您似乎在尝试遍历 myArray 中的值,对它们求平方,然后将它们存储在 squaredArray 中。
for (var i = 0; i < myArray.length; i++) {
squaredArray[i] = Math.pow(myArray[i], 2);
};
"floating point error" 是因为您试图这样做:
Math.pow(undefined, 2);
如果您不确定输入,可以通过异常处理来保护:
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);
}
};
此外,您的原始代码是求平方但没有对其进行任何处理,所以我冒昧地将结果赋值给它自己。
我正在关注第一个和第二个答案here。我已经从值中减去平均值然后 console.log()
它来检查它。然后我使用 for-loop
遍历每个值,如:
for (var i = 0; i < myArray.length; i++) {
Math.pow(squaredArray[i], 2);
};
我现在也遇到了一个浮点错误,当我添加 for-loop
来计算值的平方时看起来像这样。
我做错了什么?
您似乎在尝试遍历 myArray 中的值,对它们求平方,然后将它们存储在 squaredArray 中。
for (var i = 0; i < myArray.length; i++) {
squaredArray[i] = Math.pow(myArray[i], 2);
};
"floating point error" 是因为您试图这样做:
Math.pow(undefined, 2);
如果您不确定输入,可以通过异常处理来保护:
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);
}
};
此外,您的原始代码是求平方但没有对其进行任何处理,所以我冒昧地将结果赋值给它自己。