[JavaScript] 숫자, 수학 methods

JiHyun·2023년 2월 1일
0

JavaScript

목록 보기
3/8
post-thumbnail

숫자, 수학 methods

1) 10진수 -> 2진수 or 16진수 바꾸기

우리가 실생활에서 쓰는 숫자는 10진수이다. 그러나 개발이나 색상표현을 하기위해 2진수나 16진수를 써야할 경우도 있다.

  • 10진수 - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 2진수 - 0, 1
  • 16진수 - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
let num = 10
num.toString(2) 
> 1010

()안에 숫자를 쓰면 그 숫자에 해당하는 진법으로 바뀐다.

let num2 = 255
num2.toString(16)
> ff

2) Math.ceil() 소수점 자리 올림

소수점 자리를 올려준다

let num1 = 5.1
let num2 = 5.7

Math.ceil(num1)
> 6
Math.ceil(num2)
> 6

3) Math.floor() 소수점 자리 내림

let num1 = 5.1
let num2 = 5.7

Math.floor(num1)
> 5
Math.floor(num2)
> 5

4) Math.round() 반올림

let num1 = 5.1
let num2 = 5.7

Math.round(num1)
> 5
Math.round(num2)
> 6

만약 소수점 둘째자리 까지 표현하려면 어떻게 해야할까?(셋째 자리에서 반올림)

let userRate = 30.1234
Math.round(userRate * 100)/100
> 30.12

먼저 userRate에 100을 곱한뒤 Math.round()를 사용해서 반올림을 해준뒤 100을 나눠주면 된다
혹은 더 쉬운 방법이 있다

5) toFixed()

숫자를 인수로 받아 그 숫자만큼 소수점 아래를 반올림해준다

let userRate = 30.1234
userRate.toFixed(2)
> "30.12"

toFixed()의 숫자가 0이거나 소수점 자리 수보다 높은 경우엔 어떻게 될까?
숫자 인수가 0이면 정수부분만 나타내고 소수점 자리수보다 높으면 나머지부분을 0으로 채워준다.

let userRate = 30.1234
userRate.toFixed(0)
> "30"
userRate.toFixed(6)
> "30.123400"

여기서 주의할 점은 toFixed는 숫자열이 아니라 문자열로 반환한다는 점이다.

6) isNaN()

숫자인지 아닌지를 판별할때 쓰인다. 숫자가 맞다면 false를 반환 숫자가 아니라면 true를 반환한다.
헷갈릴 수 있는 부분이니 유의해서 사용하자!

  • isNaN(숫자) // false
  • isNaN(etc) // true
let a = Number('a')
isNaN(a)
> true
isNaN(3)
> false

7) parseInt(), parseFloat()

parseInt()
인수로 받은 값을 문자열에서 숫자열로 바꿔주며 '정수'를 반환한다. Number()와 다른 점은 문자가 혼용되어있어도 동작을 한다.

let margin = '10px'
parseInt(margin)
> 10
Number(margin)
> NaN

다만 앞에서부터 숫자를 읽다가 문자열을 만나면 코드를 끝까지 읽지않고 동작을 멈춘다.

let redColor = 'f3'
parseInt(redColor)
> NaN

이처럼 문자열을 먼저 만나 동작을 멈춰서 숫자열은 읽지도 못한채 NaN을 반환하는 것이다.

parseFloat()
정수만 반환하는 parseInt()와 다르게 '소수점'까지 반환한다.

let padding = '18.5%'
parseInt(padding)
> 18
parseFloat(padding)
> 18.5

8) Math.random()

0~1 사이에 무작위 숫자 생성한다.

Math.random()
> 0.45234336

Math.random()
> 0.872634872

Math.random()
> 0.786287432

만약 1~100사이에 임의의 숫자를 뽑고싶다면?

Math.floor(Math.random() * 100) + 1

Math함수의 랜덤숫자를 뽑은 뒤(0.8353) 100을 곱하고(83.53) Math.floor로 내림을 해준뒤(83) 1을 더해준다(84). 여기서 1을 더해주는 이유는 랜덤숫자가 소수점 2번째 자리까지 0이 나올 수 있기 때문이다(0.00324).

9) Math.max()와 Math.min()

Math.max()
인수 중 가장 큰 수를 반환한다

Math.max(5, 32, 3, 7, -1, 6.74)
> 32

배열안에서 최댓값 찾기

const arr = [1, 2, 3, 4];
const max = Math.max.apply(null, arr);
> 4
Math.max(...arr)
> 4

Math.min()
인수 중 가장 작은 수를 반환한다.

Math.min(5, 32, 3, 7, -1, 6.74)
> -1

배열안에서 최소값 찾기

const arr = [1, 2, 3, 4];
const min = Math.min.apply(null, arr);
> 1
Math.min(...arr)
> 1

10) Math.abs() 절대값

수직선 위에서 원점으로부터 어떤 수를 나타내는 점까지의 거리다. 절대값은 음이 아닌 실수로 표현한다.

Math.abs(-1)
> 1

11) Math.pow(n, m) 제곱

n의 m승값을 구할 수 있다

Math.pow(2, 10)
> 1024

12) Math.sqrt() 제곱근

Math.sqrt(16)
> 4

13) isInteger() 정수인지 아닌지

인수로 전달된 값이 정수라면 true, 정수가 아니거나 문자열(혹은 그 외)일 경우 false를 반환함

profile
비전공자의 개발일기📝

0개의 댓글