코드
function hasDecimal(number) {
return number % 1 !== 0;
}
hasDecimal(123);
// false
hasDecimal(123.45);
// true
number % 1은 숫자를 1로 나눈 나머지를 계산하는데, 정수가 아니면 0이 아닌 값을 반환하는 점을 이용한 코드입니다.
자바스크립트에서는 문자열에 대해서 나머지 연산자를 사용해면 똑같은 0의 결과가 나오게 됩니다.
오직 숫자만 판별하기
function hasDecimal(number) {
return typeof number === 'number' && number % 1 !== 0;
}
hasDecimal('123.45');
// false
hasDecimal(123.45);
// true
숫자가 아닌(문자열, boolean...) 경우를 판별하기 위해서 typeof 연산자를 이용해서 'number' 타입을 판별해 줍니다.
참고자료
https://stackoverflow.com/questions/2304052/check-if-a-number-has-a-decimal-place-is-a-whole-number