Javascript 소수점 계산

He SEO·2022년 5월 26일
0

소수점 계산

자바스크립트로 소수점이하의 값을 가진 수를 사칙계산하다 보면 가끔 이상한 값이 나온다. 0.1+0.2 = 0.3이 되어야 하는데 계산해보면 소수점 아래로 값이 더 붙어 있다.

let sum = 0.1 + 0.2
console.log(sum)
// result : 0.30000000000000004

원인

  • 자바스크립트는 숫자를 부동 소수점으로 처리
  • 그러려면 10진수를 2진수로 변환해야 하는데
  • 특정 값에서 무한 소수가 발생
  • 메모리 넘어가는 부분은 반올림 처리를 하여 미세한 차이가 발생

해결

toFixed() 사용

  • toFixed(n) : n 자리에서 반올림
  • 결과가 문자열로 반환된다
  • 값을 숫자로 변경하려면 : +를 붙여준다
let a = 0.1
let b = 0.2
let c = a + b
console.log("c : " + c)
let d = c.toFixed();
console.log("typeof d : " + typeof d)
let e = +d
console.log("typeof e : " + typeof e)

결과

c : 0.30000000000000004
typeof d : string
typeof e : number

Math 객체 사용

  • floor, ceil, round 등의 Math 객체를 사용

참고 사이트

profile
BACKEND 개발 기록 중. 감사합니다 😘

0개의 댓글