JavaScript Numbers
JavaScript 는 오직 하나의 숫자 형식이 있다.
숫자는 소수점(decimal)과 함께 또는 없이 쓸 수 있습니다.
JavaScript Numbers
JavaScript 숫자는 소수점과 함께 또는 없이 쓸 수 있습니다.:
Example
var x =
34.00; // A
number with decimals
var y =
34; //
A number without decimals
Extra large or extra small numbers can be written with scientific (exponent) notation:
Example
var x =
123e5; //
12300000
var y =
123e-5; // 0.00123
JavaScript 숫자는 항상 64-bit 부동 소수점(Floating Point)
많은 다른 프로그래밍 언어와는 달리, JavaScript는 integers, short, long, floating-point 등 과 같은 숫자의 다른 형식을 정의하지 않습니다.
JavaScript 숫자는 항상 국제 IEEE 754 표준에 따라 두배 정확도(double precision)의 부동 소수점 숫자(floating point numbers)로 저장됩니다. 이 형식은 숫자를 64 bits로 저장하며, 숫자 값(the fraction)은 bits 0 부터 bits 51 에, 지수(the exponent)는 bits 52 부터 62 에, 부호(the sign)는 bit 63 에 저장한다. :
Value (aka Fraction/Mantissa) | Exponent | Sign |
---|---|---|
52 bits (0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
정확도(Precision)
정수(Integers)(소수점과 지수 표기가 없는 번호)는 15 자리까지 정확한 것으로 간주됩니다.
Example
var x =
999999999999999; // x
will be 999999999999999
var y =
9999999999999999; // y will
be 10000000000000000
Try it Yourself » 소수의 최대 수는 17 이지만, 부동 소수점 연산(floating point arithmetic)은 항상 100 % 정확하지 않습니다 :
위의 문제를 해결하기 위해, 곱샘과 나눗샘을 사용할 수 있습니다:
16진수(Hexadecimal) and 8진수(Octal)
JavaScript 는 숫자 상수 앞에 0x 가 오면, 16진수로 해석합니다.
숫자를 0으로 시작하지 마십시오. 앞에 0이 오는 경우 자바 스크립트의 일부 버전에서는 8 진수로 숫자를 해석합니다. |
기본적으로 Javascript 는 기본 10 진수로 숫자를 표시합니다.
하지만 기16 진수, 8 진수 또는 2 진수로 번호를 출력하기 위해 toString () 메서드를 사용할 수 있습니다.
Example
var myNumber = 128;
myNumber.toString(16); //
returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Try it Yourself » Infinity
Infinity (or -Infinity) 는 JavaScript 에서 가능한 최대 수 밖의 수를 계산하면 반환하는 값입니다.
Example
var myNumber = 2;
while (myNumber !=
Infinity)
{ // Execute until Infinity
myNumber = myNumber * myNumber;
}
Try it yourself »0(zero)으로 나누어도 Infinity 가 발생:
Example
var x = 2 /
0; // x will be Infinity
var y = -2 /
0; // y will be -Infinity
Try it Yourself » Infinity 는 숫자이다: typeOf(Infinity) 는 Number 이다.
NaN - 숫자가 아님(Not a Number)
NaN NaN 는 값이 숫자가 아닌 것을 나타내는 JavaScript에 예약된 단어입니다.
값이 숫자인지 알기 위해서 글로벌 JavaScript 함수인 isNaN()를 사용할 수 있습니다.
Example
var x = 100 / "Apple";
isNaN(x);
// returns true because x is Not a
Number
Try it Yourself » NaN 를 조심하시오. 수학 연산에 사용되는 경우, 결과는 NaN 가 됩니다. NaN.
Numbers 는 숫자 또는 객체도 될 수 있다
JavaScript 숫자는 var x = 123 처럼 문자로부터 생성된 원시 값(primitive values) 이 될 수 있다. ;
JavaScript 숫자는 또한 var y = new Number(123) 처 럼 new keyword 로 생성된 객체(objects)일 수 도 있다. ;
Example
var x = 123;
var y = new
Number(123);
// typeof x returns number
// typeof y returns object
Try it yourself » Number 객체를 생성하지 마시오. 실행 속도가 느려지며, 바람직하지 않은 부작용이
발생합니다. |
Example
var x =
500;
var y = new
Number(500);
// (x == y) is true because x and y
have equal values
Try it Yourself »
3.14와 같은 원시 값은 속성과 메서드를 가질 수 없습니다 (객체가
아니기 때문에). 그러나, JavaScript는 속성과 메서드에 액세스할 때는 원시 값을 객체로 간주합니다. |
Test Yourself with Exercises!
Exercise 1 » Exercise 2 » Exercise 3 » Exercise 4 »
Number 속성 및 메서드
3.14 또는 2014 와 같은 원시 값(primitive values)은 (객체가 아니기 때문에) 속성과 메서드를 가질 수 없다.
하지만 JavaScript 에서는 속성과 메서드가 실행될 때는 원시 값(primitive value)을 객체처럼 취급하기 때문에 원시 값(primitive value)에도 속성과 메서드가 사용가능하다.
Number 속성(Properties)
Property | Description |
---|---|
MAX_VALUE | Returns the largest number possible in JavaScript |
MIN_VALUE | Returns the smallest number possible in JavaScript |
NEGATIVE_INFINITY | Represents negative infinity (returned on overflow) |
NaN | Represents a "Not-a-Number" value |
POSITIVE_INFINITY | Represents infinity (returned on overflow) |
Number 속성은 Number 라고 부르는 JavaScript의 숫자 객체 랩퍼(wrapper) 의 속성이다.
이러한 속성들은 Number.MAX_VALUE 과 같이만 접근될 수 있다.
myNumber 가 변수,수식, 또는 값(value)일 때, myNumber.MAX_VALUE 는 undefined 를 반환할 것이다.
Number 메서드(Methods)
JavaScript number method 들은 숫자에 사용될 수있는 메서드 들이다.
Method | Description |
---|---|
toString() | Returns a number as a string |
toExponential() | Returns a string, with a number rounded and written using exponential notation. |
toFixed() | Returns a string, with a number rounded and written with a specified number of decimals. |
toPrecision() | Returns a string, with a number written with a specified length |
valueOf() | Returns a number as a number |
모든 number method 들은 새로운 값을 반환하며, 원래의 값을 변경하지 않는다. |
toString() method
toString() method 는 문자열로 숫자를 반환한다.
모든 number method들은 숫자의 어떤 타입(문자형, 변수, 또는 수식)에도 사용될 수 있다.:
Example
var x = 123;
x.toString();
// returns 123 from variable x
(123).toString();
// returns 123 from literal 123
(100 + 23).toString(); //
returns 123 from expression 100 + 23
Try it Yourself » toExponential() method
toExponential() method 는 반올림(rounded)되고 지수형 기호(exponential notaton)를 사용하여 문자열로 반환한다.
매게변수는 소수젘 뒤의 문자 수를 지정한다:
Example
var x = 9.656;
x.toExponential(2); //
returns 9.66e+0
x.toExponential(4); //
returns 9.6560e+0
x.toExponential(6); //
returns 9.656000e+0
Try it yourself » 매게변수는 선택이며, 지정하지 않으면, JavaScript는 숫자를 반올림하지 않는다.
toFixed() method
toFixed() method 는 지정한 소수점 이하 개 수의 숫자를 문자열로 반환한다.
Example
var x = 9.656;
x.toFixed(0);
// returns 10
x.toFixed(2);
// returns 9.66
x.toFixed(4);
// returns 9.6560
x.toFixed(6);
// returns 9.656000
Try it yourself »toPrecision() method
toPrecision() method 는 지정한 길이로 쓰여진 숫자를 문자열로 반환한다.
Example
var x = 9.656;
x.toPrecision(); //
returns 9.656
x.toPrecision(2); // returns 9.7
x.toPrecision(4); // returns 9.656
x.toPrecision(6); // returns 9.65600
Try it Yourself » 변수를 숫자로 변환 : Global Method
JavaScript 전역함수는 모든 JavaScript 데이터 타입에 사용될 수 있다.
다음은 숫자를 가지고 작업시 가장 관련있는 메서드 들이다.
Method | Description |
---|---|
Number() | Returns a number, converted from its argument. |
parseFloat() | Parses its argument and returns a floating point number |
parseInt() | Parses its argument and returns an integer |
Number() Method
Number() method 는 JavaScript변수를 숫자로 변환하는데 사용될 수 있다.Example
x = true;
Number(x); // returns 1
x = false;
Number(x); // returns 0
x = new Date();
Number(x); // returns 1404568027739
x = "10"
Number(x); // returns 10
x = "10 20"
Number(x); // returns NaN
Try it Yourself » parseInt() Method
parseInt() method 는 문자열을 구문 분석(parse)하여 숫자를 반환한다. 공백이 허용되며, 오직 첫번째 숫자만 반환된다:Example
parseInt("10");
// returns 10
parseInt("10.33");
// returns 10
parseInt("10 20 30");
// returns 10
parseInt("10 years");
// returns 10
parseInt("years 10");
// returns NaN
Try it yourself »parseFloat() Method
parseFloat() method 는 문자열을 구문 분석(parse)하여 숫자를 반환한다. 공백이 허용되며, 오직 첫번째 숫자만 반환된다:Example
parseFloat("10");
// returns 10
parseFloat("10.33"); // returns 10.33
parseFloat("10 20 30"); // returns 10
parseFloat("10 years"); // returns 10
parseFloat("years 10"); // returns NaN
Try it yourself »숫자로 변환할 수 없다면, NaN 를 반환한다.
valueOf() Method
valueOf() method 는 숫자를 숫자로 반환한다.Example
var x = 123;
x.valueOf();
// returns 123 from variable x
(123).valueOf();
// returns 123 from literal 123
(100 + 23).valueOf(); //
returns 123 from expression 100 + 23
Try it Yourself » valuOf() method는 Number 객체를 원시값(primitive value)으로 변환할 때 JavaScript 내부에서 사용되며, 여러분들의 코드에서 사용할 이유는 없다.
Complete Number Object Reference
Complete Number Object Reference.
The reference contains both descriptions and examples, for each property and method.