programing

값이 숫자 범위 내에 있는지 확인합니다.

oldcodes 2023. 10. 11. 20:59
반응형

값이 숫자 범위 내에 있는지 확인합니다.

저는 값이 허용된 범위에 있는지 확인하고 싶습니다.만약 그렇다면, 무언가를 하는 것이고, 그렇지 않으면, 다른 것입니다.

범위는0.001-0.009. 여러 개를 사용할 줄 압니다.if이것을 확인하려고 하는데, 한 번에 확인할 수 있는 방법이 있는지 알고 싶습니다.if진술.

수치 비교에 관한 질문을 하고 계시기 때문에 정규 표현식은 문제와는 전혀 관련이 없습니다."복수"는 필요 없습니다.if" 다음 중 하나를 수행할 수 있습니다.

if (x >= 0.001 && x <= 0.009) {
  // something
}

"between()" 함수를 직접 작성할 수 있습니다.

function between(x, min, max) {
  return x >= min && x <= max;
}
// ...
if (between(x, 0.001, 0.009)) {
  // something
}

여기 단일 비교만 가능한 옵션이 있습니다.

// return true if in range, otherwise false
function inRange(x, min, max) {
    return ((x-min)*(x-max) <= 0);
}

console.log(inRange(5, 1, 10));     // true
console.log(inRange(-5, 1, 10));    // false
console.log(inRange(20, 1, 10));    // false

regexp를 사용해야 하는 경우(그리고 실제로는 사용해서는 안 됩니다!) 다음과 같이 작동합니다.

/^0\.00([1-8]\d*|90*)$/

작동해야 합니다.

  • ^전엔 아무것도 없었소
  • 뒤를0.00(nb: 백슬래시 이스케이프:.캐릭터)
  • 다음으로 1부터 8까지의 숫자, 그리고 임의의 숫자의 추가 숫자.
  • 또는 9, 그 다음에 임의의 숫자의 0.
  • $: 그 외에는 다른 것이 없습니다.

이미 사용 중인 경우lodash, 당신은 사용할 수 있습니다.inRange()기능 : https://lodash.com/docs/4.17.15#inRange

_.inRange(3, 2, 4);
// => true

_.inRange(4, 8);
// => true

_.inRange(4, 2);
// => false

_.inRange(2, 2);
// => false

_.inRange(1.2, 2);
// => true

_.inRange(5.2, 4);
// => false

_.inRange(-3, -2, -6);
// => true

저는 포인티가 좋아요.between그래서 제 시나리오에 딱 맞는 비슷한 걸 썼어요.

/**
 * Checks if an integer is within ±x another integer.
 * @param {int} op - The integer in question
 * @param {int} target - The integer to compare to
 * @param {int} range - the range ±
 */
function nearInt(op, target, range) {
    return op < target + range && op > target - range;
}

그래서 만약 당신이 보고싶다면,x의 ±10 이내에 있었습니다.y:

var x = 100;
var y = 115;
nearInt(x,y,10) = false

모바일에서 긴 누름을 감지하는 데 사용하고 있습니다.

//make sure they haven't moved too much during long press.
if (!nearInt(Last.x,Start.x,5) || !nearInt(Last.y, Start.y,5)) clearTimeout(t);

당신의 코드가 특정한 숫자 범위를 선택하기를 원한다면, 반드시 다음을 사용해야 합니다.&&대신 연산자||.

if (x >= 4 && x <= 9) {
  // do something
} else {
  // do something else
}

// be sure not to do this

if (x >= 4 || x <= 9) {
  // do something
} else {
  // do something else
}

조건을 작성하기 전에 하한과 상한을 결정해야 합니다.

function between(value,first,last) {

 let lower = Math.min(first,last) , upper = Math.max(first,last);
 return value >= lower &&  value <= upper ;

}

const inRange = (num, num1, num2) => Math.min(num1, num2) <= num && Math.max(num1, num2) >= num;

범위 번호 순서(num1, num2)에 의존하지 않고 범위를 포함하도록 하려면 이와 같을 수 있습니다.

다음은 짧은 ES6 기능입니다.

const inRange = (num, min, max) => num >= min && num <= max

언급URL : https://stackoverflow.com/questions/6454198/check-if-a-value-is-within-a-range-of-numbers

반응형