자바스크립트 숫자 (JavaScript Numbers)

자바스크립트 숫자 (JavaScript Numbers)

자바스크립트에는 한 가지 유형(type)의 번호 만 있습니다. 숫자는 소수점 없이 또는 소수점과 함께 작성할 수 있습니다.

Example

3.14
3

매우 큰 수 또는 매우 작은 수를 과학의 (지수)표기법으로 작성할 수 있습니다:

Example

12300000
0.00123


자바스크립트 숫자는 항상 64 비트 부동 소수점(64-bit Floating Point)입니다.

다른 많은 프로그래밍 언어와 달리 자바스크립트는 integers, short, long,
floating-point 등 다른 유형의 숫자를 정의하지 않습니다.

자바 스크립트 번호는 국제 IEEE 754 표준에 따라 항상 배정도 부동 소수점(double precision floating point numbers) 숫자로 저장됩니다.

이 형식은 숫자를 64 비트로 저장합니다. 숫자 (분수)(number (the fraction))는 비트 0 ~ 51에 저장되고, 지수(exponent)는 비트 52 ~ 62에 저장되고, 부호(sign)는 63비트로 다음과 같이 저장됩니다:

Value (aka Fraction/Mantissa) Exponent Sign
52 bits (0 – 51)  11 bits (52 – 62) 1 bit (63)

정확성(Precision)

정수(integers) (소수점 없는 숫자 또는 지수 표기법)는 최대 15 자리까지 정확합니다.

Example

999999999999999
10000000000000000

소수점의 최대 수(maximum number of decimals)는 17이지만 부동 소수점 산술(floating point arithmetic)은 항상 100 % 정확하지는 않습니다:

Example

0.2 + 0.1 = 0.30000000000000004

위의 문제를 다음과 같이 곱셈 및 나눗셈으로 해결합니다:

Example

0.2 + 0.1 = 0.30000000000000004

이것을 곱하고 나누면 해결할 수 있습니다:

0.2 + 0.1 = 0.3


숫자 및 문자열 추가(Adding Numbers and Strings)

두 개의 숫자를 더하면 그 결과는 숫자가 됩니다:

Example

30

두 개의 문자열을 더하면 문자열은 연결됩니다:

Example

1020

숫자와 문자열을 더하면 문자열 연결이 됩니다:

Example

1020

문자열과 숫자를 더하면 문자열 연결이 됩니다:

Example

1020

이 결과가 30 일 것이라고 예상하는 실수를 많이 합니다:

Example

The result is: 1020

이 결과는 102030이라고 예상하는 실수를 많이 합니다:

Example

3030


숫자 문자열(Numeric Strings)

자바스크립트 문자열은 숫자형일 수 있습니다:

자바스크립트는 모든 숫자 연산에서 문자열을 숫자로 변환하려고 시도합니다:

이것은 작동합니다:

Example

10

이것 또한 작동합니다:

Example

1000

그리고 이것도 작동합니다:

Example

90

그러나 이것은 작동하지 않습니다:

Example

10010


NaN – Not a Number

NaN은 숫자가 유효한 숫자가 아님을 나타내는 자바스크립트 예약어(reserved word)입니다.

숫자가 아닌 문자열로 산술 연산을 수행하면 NaN(숫자가 아님)이 됩니다:

Example

NaN

그러나 문자열에 숫자 값이 들어 있으면 결과는 숫자가 됩니다:

Example

10

전역 자바스크립트 함수(global JavaScript function) isNaN()을 사용하여 값이 숫자인지 확인할 수 있습니다:

Example

true

NaN에 주의하십시오. 수학 연산에서 NaN을 사용하면 결과도 NaN이 됩니다:

Example

NaN

또는 결과가 연결일 수 있습니다:

Example

NaN5

NaN은 숫자입니다: NaN의 유형(type of NaN)은 숫자입니다:

Example

number


무한대(Infinity)

가능한 가장 큰 숫자를 벗어나는 값을 계산할 때 자바스크립트는 Infinity (또는 -Infinity)를 반환한다

Example

4
16
256
65536
4294967296
18446744073709552000
3.402823669209385e+38
1.157920892373162e+77
1.3407807929942597e+154
Infinity

0으로 나눈면 Infinity를 반환합니다:

Example

Infinity
-Infinity

무한대는 숫자입니다. 무한대의 유형(typeof Infinity)은 숫자를 반환합니다.

Example

number


16 진수(Hexadecimal)

0x가 앞에 오면 자바스크립트는 숫자 상수를 16진수로 해석합니다.

Example

0xFF = 255

기본적으로 자바스크립트는 기본 10 진수로 숫자를 표시합니다.

그러나 toString() 메서드를 사용하여 숫자를 base 16 (hex), base 8 (octal) 또는 base 2 (binary)로 표시할 수 있습니다.

Example

128 = 128 Decimal, 80 Hexadecimal, 200 Octal, 10000000 Binary.


숫자는 객체가 될 수 있음(Numbers Can be Objects)

일반적으로 자바스크립트 숫자는 문자(literals)로 생성된 초기 값(primitive values)입니다:

var x = 123;

그러나 숫자는 키워드 new를 사용하여 객체로 정의할 수도 있습니다:

var y = new Number(123);

Example

number
object

== 연산자를 사용하면, 같은 숫자는 같습니다(equal numbers are equal):

Example

true

=== 연산자를 사용하면 같은 숫자는 같지 않습니다(equal numbers are not equal).=== 연산자는 유형과 값(type and value)이 같아야 하기 때문입니다.

Example

false

더 좋지 않은 것은, 객체를 서로 비교할 수 없습니다:

Example

false

답글 남기기