값이 숫자 범위 내에 있는지 확인합니다.
저는 값이 허용된 범위에 있는지 확인하고 싶습니다.만약 그렇다면, 무언가를 하는 것이고, 그렇지 않으면, 다른 것입니다.
범위는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
'programing' 카테고리의 다른 글
j.트리거의 장점/차이 .trigger() vs.click() (0) | 2023.10.16 |
---|---|
XmlSerializer를 사용하여 빈 xml 특성 값을 nullable int 속성으로 역직렬화 (0) | 2023.10.11 |
고정 사이드바가 jQuery와 바닥글이 겹치지 않게 하려면 어떻게 해야 합니까? (0) | 2023.10.11 |
Angular에서 페이지 로드 후 앵커링하려면 스크롤 (0) | 2023.10.11 |
PowerShell 시도/잡기 및 재시도 (0) | 2023.10.11 |