JS

JS(5) Type - 원시타입(2) 숫자형

UserDonghu 2023. 8. 23. 18:42

숫자형

JS의 숫자형은 배정밀도 64비트 부동소수점 형식

배정밀도 64비트 : 숫자 하나를 표현하는데 64비트의 용량을 사용. 32비트보다 두배로 정밀

부동소수점 : 소수점을 이동시키면서 숫자를 표현

 

음양의 값, 유효숫자와 소수점의 위치 값으로 숫자를 나타냄

 

숫자의 다양한 연산

console.log(`10 + 3 = ${10 + 3}`)
console.log(`10 - 3 = ${10 - 3}`)
console.log(`10 / 3 = ${10 / 3}`)
console.log(`10 * 3 = ${10 * 3}`)
console.log(`10 ** 3 = ${10 ** 3}`) // 10^3
console.log(`4 ** 0.5 = ${4 ** 0.5}`) // 4의 제곱근 = 2
console.log(`10 % 3 = ${10 % 3}`) // 나머지
console.log(`10 % 3 = ${10 // 3}`) // ERROR : //연산자는 없음 몫 X

console.log(-(-2))
console.log(--2) // Error
console.log(+'4') // 4

console.log(~~3.14) // 소숫점 제거 3

// 0부터 9까지 출력
for (let i = 0; i < 10; i++) {
    console.log(i)
}

console.log(2 == '2'); // 다른 언어에서는 false, js에서는 true
console.log(2 === '2'); // 다른 언어에서 이런 문법이 없고, js에서는 false. 등호 3개 사용 권장

 

숫자를 의미하는 특수 값

Infinity : 무한대 or 아주 큰수 or 불가능한 연산

console.log(1/0); // 불가능한 연산 Infinity

let num = 9999e10000; // 9999 * 10^10000 아주 큰 수 (표현불가능)
console.log(num === Infinity); // true

 

NaN : Not a Number 산술연산이 불가능한 데이터와 연산을 진행하려 할때 반환.

console.log("구천구백구십구" / 2); // Nan

 

숫자형 메소드

- parseInt(), parseFloat() : 문자열을 정수 또는 실수로 바꿔주는 함수. 숫자가 아닌 문자를 만나면 변환 종료.

parseInt('30'); // 30
parseInt('30b'); // 30
parseInt('b30'); // NaN
parseInt('33.33'); // 33

parseInt('10     ') // 10
parseInt('     10') // 10 첫번째로 오는 공백은 OK
parseInt('     10   12  1') // 10

parseInt('11', 2); // 2진법으로 나타낸 11을 10진법으로 변환
parseInt('30', 2); // 2진법에선 3이 없으니 NaN

 

- toString() : 숫자를 문자열로 변환

let num = 5;
num.toString(); // '5'

(3).toString(); // '3'
3.toString(); // Error : 3. 을 3의 소숫점으로 인식

(3).toString(2); // 10진수 3을 2진수 문자열로 반환

 

- isNan() : 인수를 Number()로 형 변환후, NaN인지 확인

isNaN(true); // Number(true)가 1이므로 거짓
isNaN(null); // Number(null)이 0이므로 거짓
isNaN(37); // 거짓

isNaN(""); // Number("")가 0이므로 거짓
isNaN(" "); // Number(" ")가 0이므로 거짓
isNaN("abc"); // Number("abc")는 NaN

 

- Number.isNaN() : isNaN함수의 엄격한 버전. 인수가 Number이고 NaN이면 true, 아니면 false

 

- toLocaleString() : 숫자를 언어의 표기법대로 변환하여 문자열로 반환. 인자로 국가코드 전달

(12345678910).toLocaleString(); // '12,345,678,910'
(12345678910).toLocaleString('ar-IQ') // '١٢٬٣٤٥٬٦٧٨٬٩١٠' 이라크 숫자
(12345678910).toLocaleString('ko-KR', { style: 'currency', currency: 'KRW' }) // '₩12,345,678,910'

 

- Math 내장 객체를 이용

Math.PI; // 3.141592653589793 파이
Math.round(4.7) // 5 반올림
Math.pow(2, 8) // 256 2^8
Math.sqrt(64) // 8 64의 제곱근

'JS' 카테고리의 다른 글

JS(7) Type - 객체타입(1) 배열  (0) 2023.08.24
JS(6) Type - 원시타입(3) Boolean, undefined, null  (0) 2023.08.23
JS(4) Type - 원시타입(1) 문자열  (3) 2023.08.23
JS(3) Type 을 확인하는 방법  (0) 2023.08.23
JS(2) 변수  (0) 2023.08.23