..

Search

34) Number 메소드

34) Number 메소드

Number 메소드


Number 메소드

Number 메소드는 Number 객체에 정의되어 있는 숫자와 관련된 작업을 할 때 사용하는 메소드입니다.

가장 많이 사용되는 대표적인 Number 메소드는 다음과 같습니다.

 

1. Number.parseFloat()

2. Number.parseInt()

3. Number.isNaN()

4. Number.isFinite()

5. Number.isInteger()

6. Number.isSafeInteger()


Number.parseFloat() 메소드

Number.parseFloat() 메소드는 문자열을 파싱(parsing)하여, 문자열에 포함된 숫자 부분을 실수 형태로 반환합니다.문자열에 여러 개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 실수 형태로 반환합니다.

 

이 메소드는 전역 함수인 parseFloat() 함수와 완전히 같은 동작을 수행합니다.

예제

Number.parseFloat("12");         // 12

Number.parseFloat("12.34");      // 12.34

Number.parseFloat("12문자열");   // 12

Number.parseFloat("12 34 56");   // 12

Number.parseFloat("문자열 56")); // NaN

코딩연습 ▶

 

이 메소드는 사파리와 익스플로러에서 지원하지 않습니다.

Number.parseInt() 메소드

Number.parseInt() 메소드는 문자열을 파싱하여, 문자열에 포함된 숫자 부분을 정수 형태로 반환합니다.

문자열에 여러 개의 숫자가 존재하면, 그중에서 첫 번째 숫자만을 정수 형태로 반환합니다.

 

이 메소드는 전역 함수인 parseInt() 함수와 완전히 같은 동작을 수행합니다.

예제

Number.parseInt("12");         // 12

Number.parseInt("12.34");      // 12

Number.parseInt("12문자열");   // 12

Number.parseInt("12 34 56");   // 12

Number.parseInt("문자열 56")); // NaN

코딩연습 ▶

 

이 메소드는 사파리와 익스플로러에서 지원하지 않습니다.

Number.isNaN() 메소드

Number.isNaN() 메소드는 전달된 값이 NaN인지 아닌지를 검사합니다.

 

이 메소드는 전역 함수인 isNaN() 함수가 가지고 있던 숫자로의 강제 변환에 따라 발생하는 문제를 더는 겪지 않게 해줍니다.

이 메소드는 오직 숫자인 값에서만 동작하며, 그 값이 NaN인 경우에만 true를 반환합니다.

예제

Number.isNaN(NaN);       // true

Number.isNaN(0 / 0);     // true

// 다음은 전역 함수인 isNaN()에서 잘못된 결과를 반환하는 예제임.

isNaN("NaN");            // true

isNaN(undefined);        // true

isNaN("문자열");         // true

// Number.isNaN() 메소드에서 맞는 결과를 반환하고 있음.

Number.isNaN("NaN");     // false

Number.isNaN(undefined); // false

Number.isNaN("문자열");  // false

코딩연습 ▶

 

이 메소드는 익스플로러에서 지원하지 않습니다.

Number.isFinite() 메소드

Number.isFinite() 메소드는 전달된 값이 유한한 수인지 아닌지를 검사합니다.

 

이 메소드는 전역 함수인 isFinite() 함수처럼 전달된 값을 숫자로 강제 변환하지 않습니다.

이 메소드는 오직 셀 수 있는 값에서만 동작하며, 그 값이 유한한 경우에만 true를 반환합니다.

예제

Number.isFinite(0);        // true

Number.isFinite(3e45);     // true

Number.isFinite(Infinity); // false

Number.isFinite(NaN);      // false

// 다음은 전역 함수인 isFinite()에서 잘못된 결과를 반환하는 예제임.

isFinite("0");             // true

isFinite(null);            // true

// Number.isFinite() 메소드에서는 맞는 결과를 반환하고 있음.

Number.isFinite("0");      // false

Number.isFinite(null);     // false

코딩연습 ▶

 

이 메소드는 익스플로러에서 지원하지 않습니다.

Number.isInteger() 메소드

Number.isInteger() 메소드는 전달된 값이 정수인지 아닌지를 검사합니다.

전달된 값이 정수이면 true를 반환하며, 정수가 아니거나 NaN, Infinity와 같은 값은 모두 false를 반환합니다.

예제

Number.isInteger(0);        // true

Number.isInteger(-100);     // true

Number.isInteger(0.1);      // false

Number.isInteger("문자열"); // false

Number.isInteger(Infinity); // false

Number.isInteger(true);     // false

코딩연습 ▶

 

이 메소드는 사파리와 익스플로러에서 지원하지 않습니다.

Number.isSafeInteger() 메소드

Number.isSafeInteger() 메소드는 전달된 값이 안전한 정수(safe integer)인지 아닌지를 검사합니다.

 

안전한 정수(safe integer)란 IEEE 754 국제 표준에서 정의한 64비트 부동 소수점 수로 정확히 표현되는 정수를 의미합니다.

-(253 - 1)부터 (253 - 1)까지의 모든 정수가 안전한 정수에 포함됩니다.

예제

Number.isSafeInteger(10);                  // true

Number.isSafeInteger(Math.pow(2, 53) - 1); // true

Number.isSafeInteger(Math.pow(2, 53));     // false

Number.isSafeInteger(Infinity);            // false

Number.isSafeInteger(NaN);                 // false

Number.isSafeInteger(3.14);                // false

코딩연습 ▶

 

Math.pow()는 거듭제곱 연산을 수행하는 Math 객체의 메소드입니다.
예를 들어 Math.pow(2, 53)은 253을 반환합니다.
이 메소드는 사파리와 익스플로러에서 지원하지 않습니다.

자바스크립트 Number 메소드

메소드 설명

Number.parseFloat()

문자열을 파싱하여, 문자열에 포함된 숫자 부분을 실수 형태로 반환함.

Number.parseInt()

문자열을 파싱하여, 문자열에 포함된 숫자 부분을 정수 형태로 반환함.

Number.isNaN()

전달된 값이 NaN인지 아닌지를 검사함.

Number.isFinite()

전달된 값이 유한한 수인지 아닌지를 검사함.

Number.isInteger()

전달된 값이 정수인지 아닌지를 검사함.

Number.isSafeInteger()

전달된 값이 안전한 정수(safe integer)인지 아닌지를 검사함.

Number.prototype 메소드

모든 Number 인스턴스는 Number.prototype으로부터 메소드와 프로퍼티를 상속받습니다.

가장 많이 사용되는 대표적인 Number.prototype 메소드는 다음과 같습니다.

 

1. Number.prototype.toExponential()

2. Number.prototype.toFixed()

3. Number.prototype.toPrecision()

4. Number.prototype.toString()

5. Number.prototype.valueOf()


toExponential() 메소드

이 메소드는 Number 인스턴스의 값을 지수 표기법으로 변환한 후, 그 값을 문자열로 반환합니다.

이때 전달받은 값은 지수 표기법에서 소수 부분의 자릿수로 사용됩니다.

원형

numObj.toExponential([소수부분의자릿수])

 

예제

var num = 12.3456;       // Number 인스턴스를 생성함.

num.toExponential();     // 1.23456e+1

num.toExponential(2);    // 1.23e+1

num.toExponential(4);    // 1.2346e+1

12.3456.toExponential(); // 1.23456e+1

코딩연습 ▶


toFixed() 메소드

이 메소드는 Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환합니다.

원형

numObj.toFixed([소수부분의자릿수])

 

예제

var num = 3.14159265;  // Number 인스턴스를 생성함.

num.toFixed();         // 3

num.toFixed(2);        // 3.14

num.toFixed(4);        // 3.1416

3.14159265.toFixed(6); // 3.141593

코딩연습 ▶


toPrecision() 메소드

이 메소드는 Number 인스턴스의 가수와 소수 부분을 합친 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환합니다.

원형

numObj.toPrecision([전체자릿수])

 

예제

var num = 3.14159265;      // Number 인스턴스를 생성함.

num.toPrecision();         // 3.14159265

num.toPrecision(2);        // 3.1

num.toPrecision(4);        // 3.142

3.14159265.toPrecision(6); // 3.14159

코딩연습 ▶


toString() 메소드

이 메소드는 Number 인스턴스의 값을 문자열로 반환합니다.

전달받은 값에 해당하는 진법으로 우선 값을 변환한 후, 그 값을 문자열로 반환합니다.

원형

numObj.toString([진법])

 

예제

var num = 255;       // Number 인스턴스를 생성함.

num.toString();      // 255

(255).toString();    // 255

(3.14).toString();   // 3.14

num.toString(2);     // 11111111

(100).toString(16);  // 64

(-0xff).toString(2); // -11111111

코딩연습 ▶

 

숫자 리터럴에 toString() 메소드를 사용할 때에는 반드시 괄호(())를 사용하여 숫자 리터럴을 감싸줘야 합니다.
그렇지 않으면 자바스크립트는 SyntaxError를 발생한 후, 프로그램을 중지시킬 것입니다.

valueOf() 메소드

이 메소드는 Number 인스턴스가 가지고 있는 값을 반환합니다.

원형

numObj.valueOf()

 

예제

var numObj = new Number(123); // 123의 값을 가지는 Number 인스턴스를 생성함.

typeof numObj;                // object

var num = numObj.valueOf();

num;                          // 123

typeof num;                   // number

코딩연습 ▶


자바스크립트 Number.prototype 메소드

메소드 설명

toExponential()

Number 인스턴스를 지수 표기법으로 변환한 후, 그 값을 문자열로 반환함.

toFixed()

Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환함.

toPrecision()

Number 인스턴스의 가수와 소수 부분의 합친 자릿수를 전달받은 값으로 고정한 후, 그 값을 문자열로 반환함.

toString()

Number 인스턴스의 값을 문자열로 반환함.

valueOf()

Number 인스턴스가 가지고 있는 값을 반환함.

연습문제