[Study/JavaScript] 숫자 표기법 / 숫자형 method

SoShy·2023년 11월 30일

JavaScript_Study

목록 보기
14/36
post-thumbnail

🥕 숫자 표기법

1. 지수 표기법

let millionaire = 1000000000;
let myNumber = 1e9

console.log(millionaire);
console.log(myNumber);
console.log(millionaire === myNumber);
.
.
.
>>> 1000000000
	1000000000
	true
console.log(16e-5);
console.log(3.5e-3);
.
.
.
>>> 0.00016
	0.0035

2. n진법

1) 16진법 (Hexadecimal)

let hex1 = 0xff;
let hex2 = 0xFF;

console.log(hex1);
console.log(hex2);
.
.
.
>>> 255
	255

2) 8진법 (Octal)

let octal = 0o377;

console.log(octal);
.
.
.
>>> 255

3) 2진법 (binary numeral system)

let binary = 0b11111111;

console.log(binary);
.
.
.
>>>> 255


🥕 숫자형 method

1. toFixed

  • parameter로 숫자 값을 전달해 주면, 그만큼 소수점 아래의 자릿수를 고정해 줌.
  • 사용 가능 범위는 0 ~ 100
let myNumber = 0.3591;

console.log(myNumber.toFixed(3));
.
.
.
>>> 0.359

  • 파라미터로 전달하는 값이 숫자값의 자릿수를 초과하는 경우에는 0으로 대체됨.
let myNumber = 0.3591;

console.log(myNumber.toFixed(7));
.
.
.
>>> 0.3591000

  • 출력되는 값이 문자열이라는 점 주의
    = +를 사용할 경우, 문자열끼리 연결될 수 있음.
let myNumber = 0.3591;

console.log(typeof myNumber.toFixed(7));
.
.
.
>>> string

  • 숫자형으로 형변환 시켜주면 뒤에 의미없이 붙어있던 0도 사라짐.
let myNumber = 0.3591;

console.log(Number(myNumber.toFixed(7)));
.
.
.
>>> 0.3591

💡 JS에서는 어떤 값 앞에 +를 붙여주면 Number 함수와 같은 역할을 함.

let myNumber = 0.3591;

console.log(+myNumber.toFixed(7));
.
.
.
>>> 0.3591

2. toString

  • parameter로 전달하는 숫자의 진법으로 숫자를 변환해 줌.
  • 사용 가능 범위는 2 ~ 36
  • 결과값은 문자열
let myNumber = 255;

console.log(myNumber.toString(2));
console.log(myNumber.toString(8));
console.log(myNumber.toString(16));
.
.
.
>>> 11111111
	377
	ff

  • 숫자에 바로 숫자형 method 적용 가능함.
    - 다만, 숫자 뒤에 오는 점은 소수점으로 인식하기 때문에, method 사용 시에는 점 두 개 찍어줘야 함.
console.log(255..toString(2));
.
.
.
>>> 11111111

  • 아래와 같이, 양 옆에 괄호를 달아주는 방법도 있음.
console.log((255).toString(2));
.
.
.
>>> 11111111

3. Math 객체

1) 절댓값 (Absolute Number)

console.log(Math.abs(-10));
console.log(Math.abs(10));
.
.
.
>>> 10
	10

2) 최댓값 (Maximum)

console.log(Math.max(2, -1, 4, 5, 0));
.
.
.
>>> 5

3) 최솟값 (Minimum)

console.log(Math.min(2, -1, 4, 5, 0));
.
.
.
>>> -1

4) 거듭제곱 (Exponentiation)

console.log(Math.pow(2, 3));
console.log(Math.pow(5, 2));
.
.
.
>>> 8
	25

5) 제곱근 (Square Root)

console.log(Math.sqrt(25));
console.log(Math.sqrt(49));
.
.
.
>>> 5
	7

6) 반올림 (Round)

console.log(Math.round(2.3));
console.log(Math.round(2.4));
console.log(Math.round(2.49));
console.log(Math.round(2.5));
console.log(Math.round(2.6));
.
.
.
>>> 2
	2
	2
	3
	3

7) 버림과 올림 (Floor and Ceil)

console.log(Math.floor(2.4));
console.log(Math.floor(2.49));
console.log(Math.floor(2.8));
console.log('-');
console.log(Math.ceil(2.4));
console.log(Math.ceil(2.49));
console.log(Math.ceil(2.8));
.
.
.
>>> 2
	2
	2
	-
    3
	3
	3

8) 난수 (Random)

  • 0 이상 1 미만의 값을 random으로 return
console.log(Math.random());
console.log(Math.random());
console.log(Math.random());
console.log(Math.random());
.
.
.
>>> 0.21458369059793236
	0.6622040803059857
	0.785172717569619
	0.9056556038884926

4. 계산 오차 수정

컴퓨터는 숫자를 2진법으로 변환하여 계산을 하기 때문에, 아래처럼 오차가 발생하게 됨.

let sum = 0.1 + 0.2;

console.log(sum);
.
.
.
>>> 0.30000000000000004

이를 해결하는 대표적인 방법으로는, 아래 두 가지 방법이 있음.

let sum = 0.1 + 0.2;

console.log(+sum.toFixed(1));	// 숫자형으로 형변환 필수
console.log(Math.round(sum * 10) / 10);
.
.
.
>>> 0.3
profile
프론트엔드 개발자가 되기 위해 노력 중인 새싹🌱 입니다.

0개의 댓글