JavaScript: Math.trunc() vs Math.floor()

Sangmin Na·2021년 5월 20일
5

JavaScript

목록 보기
1/7
post-thumbnail

스터디 로그를 위한 글입니다.
개선을 위한 정보 혹은 틀린 정보가 있다면 자유롭게 코멘트를 작성해주세요 :D

Which should I use?

십진수로 변경할 때 여러가지 방법이 있다. 하지만, 무엇을 사용해야 할지 정하는 것은 가독성과 속도와의 tradeoff를 찾아야 한다.

상황에 따라 무엇을 사용해야 할지 정해야 한다. 단순히 소수점만 없애고자 한다면 trunc() 를 사용하면 된다. floor() , ceil() round() 는 컨셉면에서 trunc() 와 완전히 다르다.

Math library

var v = 3.14; 
[Math.trunc(v), Math.round(v), Math.floor(v), Math.ceil(v)]
// prints results

여러가지 다른 Input value와 그에 대한 결과 값이다.

v        t   r   f   c
 3.87 : [ 3,  4,  3,  4]
 3.14 : [ 3,  3,  3,  4]
-3.14 : [-3, -3, -4, -3]
-3.87 : [-3, -4, -4, -3]

Math.trunc() : 소수점 이하는 버린다.
Math.round() : 반올림
Math.floor() : 내림 floor => 바닥까지 내린다고 생각 3.5 -> 3 -3.5 -> -4
Math.ceil() : 올림 ceiling => 천장까지 올린다고 생각 3.5 -> 4 -3.5 -> -3

중요한점 (추가)

Math.trunc()는 소수점 이하는 다 버리기 때문에 숫자가 -23.3 음수인 경우에도 그저 -23을 Return한다.
Math.floor()는 -23.3인 경우에 내림을 하기 때문에 -24를 Return하게 된다. 그러므로, 그저 소수점을 버릴 것이냐, 아니면 수학적인 계산이 필요하여 음수인 경우에도 적용할 것이냐에 따라 선택하면 될 것이다.

Reference

0개의 댓글