JavaScript에서 어떤 값이 정수(Integer)인지 아니면 부동 소수점(Float)인지 판별해야 하는 경우가 자주 있습니다. 예를 들어 다음과 같은 변수가 있다고 가정해 보겠습니다.
var value1 = 10; var value2 = 10.15;
Number()를 활용한 float 여부 확인
숫자가 부동 소수점인지 확인하려면 Number() 조건을 활용할 수 있습니다. 아래 조건식은 값이 실제 숫자 타입이면서 동시에 나눗셈의 나머지가 0이 아닌 경우, 즉 소수점 이하 값을 가지는지 검사합니다.
function checkNumberIfFloat(value) {
return Number(value) === value && value % 1 !== 0;
}여기서 핵심은 두 가지입니다. 첫째, Number(value) === value는 해당 값이 숫자 타입인지 확인합니다. 둘째, value % 1 !== 0은 값을 1로 나눴을 때 나머지가 존재하는지, 즉 소수점 이하가 있는지를 판별합니다.
전체 예제 코드
다음은 위 함수를 사용한 완전한 예제입니다.
function checkNumberIfFloat(value) {
return Number(value) === value && value % 1 !== 0;
}
var value1 = 10;
var value2 = 10.15;
if (checkNumberIfFloat(value1) == true)
console.log("The value is float=" + value1);
else
console.log("The value is not float=" + value1);
if (checkNumberIfFloat(value2) == true)
console.log("The value is float=" + value2);
else
console.log("The value is not float=" + value2);프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo218.js라고 가정합니다.
실행 결과
프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo218.js The value is not float=10 The value is float=10.15
결과에서 볼 수 있듯이 정수 10은 "not float"로 판별되고, 소수점을 포함한 10.15는 "float"로 올바르게 구분됩니다. 이 방법은 간단하면서도 효율적이기 때문에 입력값 유효성 검사나 데이터 타입 처리 로직에 유용하게 활용할 수 있습니다.