我需要比较两个持续时间并生成一定比例的匹配。
例如,我有一个可信任的持续时间,第二个持续时间需要与第一个持续时间进行比较。
容差为8%,这意味着第二个持续时间比可信任的持续时间长8%或更长。
如果duration2>持续时间1 - 8%&&如果duration2<持续时间1 + 8% 返回100%
最后我的函数必须返回两个持续时间之间匹配的百分比。
你知道怎么做吗?
谢谢!
答案 0 :(得分:0)
由于:
可以执行以下操作
if (duration2 > duration1 * 0.92 && duration2 < duration1 * 1.08) {
return 1; // if inside -8% +8% returns 100%
} else {
// If not in the -8% or +8% returns percentage
return Math.abs((duration2 / duration1) - 1);
}
或者更好,因为你的计算量较少
var distance = Math.abs((duration2 / duration1) - 1);
if (distance > 0.08) {
return distance;
}
return 1;
如果您需要绝对百分比或签名百分比,请注意不清楚。可以删除函数Math.abs
,从第一个更改为第二个答案 1 :(得分:0)
var d1 = 100; // trusted
var d2 = 108; // other
var diff = d2 - d1;
var percent = (diff / d1) * 100;
console.log(percent, "%");
if(Math.abs(percent) > 8) {
console.log("Ut oh");
} else {
console.log("In the sweet spot");
}