我正在做一个电子学习项目,我需要一个简单的验证函数,该函数接受3个数组,并且当第3个数组中的每个元素等于第一个数组对应元素乘以第二个数组元素时返回true。
3个数组的长度相同。
例子:
verifyNotes([5], [2], [11])
//should return false because 5*2=10
verifyNotes([5], [2], [10])
//should return true
这是我创建的函数(我认为没有什么特别的):
function verifyNotes(coefficients, notes, savedResults){
var resultVerif=true;
savedResults.forEach(function(element, i){
if( (coefficients[i]*notes[i]) !== savedResults[i] ){
resultVerif=false;
}
});
return resultVerif;
}
var verif1 = verifyNotes([1,4,2], [12,16,8], [12,64,16]);
console.info("Verif1: Are notes okay?", verif1);
当我有浮动注释时,在此示例中,该函数在应返回true时将返回false(因为1.5 * 15.66 = 23.49):
var verif2 = verifyNotes([1,4,2,1.5], [12,16,8,15.66], [12,64,16,23.49]);
console.info("Verif2: Are notes okay?", verif2);
//ouputs: Verif2: Are notes okay? false
怎么了?
这是一个舍入错误。您可能需要将数字四舍五入为固定的位数,如下所示:
parseFloat((your_number).toFixed(2));
具体来说,在 if( parseFloat((coefficients[i]*notes[i]).toFixed(2))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句