[javascript] 숫자가 소수점 이하 자릿수인지 정수인지 확인하십시오
JavaScript에서 숫자가 소수인지 확인하는 쉬운 방법을 찾고 있습니다 (정수인지 확인하기 위해). 예를 들어
23 -> OK
5 -> OK
3.5 -> not OK
34.345 -> not OK
if(number is integer) {...}
답변
모듈러스 를 사용 하면 효과가 있습니다.
num % 1 != 0
// 23 % 1 = 0
// 23.5 % 1 = 0.5
이는 형식에 관계없이 숫자의 숫자 값 을 기반으로 합니다. 고정 소수점이있는 정수를 포함하는 숫자 문자열을 정수와 동일하게 처리합니다.
'10.0' % 1; // returns 0
10 % 1; // returns 0
'10.5' % 1; // returns 0.5
10.5 % 1; // returns 0.5
답변
Number.isInteger(23); // true
Number.isInteger(1.5); // false
Number.isInteger("x"); // false:
Number.isInteger () 는 ES6 표준의 일부이며 IE11에서는 지원되지 않습니다.
그것은에 대해 false를 반환 NaN
, Infinity
및 숫자가 아닌 인수하면서 x % 1 != 0
true를 반환합니다.
답변
또는 이것을 사용하여 소수점이 아닌지 알아낼 수 있습니다.
string.indexOf(".") == -1;
답변
가장 일반적인 해결책은 숫자의 정수 부분을 제거하고 다음과 같이 0과 비교하는 것입니다.
function Test()
{
var startVal = 123.456
alert( (startVal - Math.floor(startVal)) != 0 )
}
답변
간단하지만 효과적인!
Math.floor(number) === number;
답변
// 바이트 화는 어떻습니까?
Number.prototype.isInt= function(){
return this== this>> 0;
}
나는 항상 자바 스크립트에서 비트 연산자에 대해 기분이 좋지 않습니다.
그들은 운동을 거의하지 않습니다.
답변
number = 20.5
if (number == Math.floor(number)) {
alert("Integer")
} else {
alert("Decimal")
}
꽤 시원하고 XX.0과 같은 것들에도 작동합니다! Math.floor ()는 소수가 있으면 소수점을 자르기 때문에 바닥이 원래 숫자와 다르면 소수임을 알 수 있습니다! 그리고 문자열 변환은 없습니다 🙂