컴퓨터는 2진법을 사용하기 때문에 숫자나 문자등을 0
과 1
로 구분해서 표현해준다.
따라서 0.1이나 0.2의 소수점의 경우 정확한 값을 표현하지 못한다.
예를 들어보자.
console.log(0.1 + 0.2);
// 출력값 : 0.30000000000000004
이와 같이 우리가 예상한 0.3과는 다른값이 출력이 된다.
// 정수 연산
var a = 1.5;
var b = 1.6;
console.log((a * 10 + b * 10) / 10); // 3.1
Math.ceil() - 올림
Math.floor() - 내림
Math.round() - 반올림
Math.trunc() - 버림
// 올림의 예제
var a = 1.5;
var b = 1.6;
console.log(`a : ${Math.ceil(a)}`); // 2
console.log(`b : ${Math.ceil(b)}`); // 2
toFixed()
메서드 사용var a = 1.5;
var b = 1.6;
var sum = a + b;
// 소수점 1번째 자리
console.log (sum.toFixed(1)) // 3.1
// 소수점 2번째 자리
console.log (sum.toFixed(2)) // 3.10
$ npm install big.js
// ES module
const Big = require('big.js');
console.log(0.1 + 0.2 === 0.3) // false
console.log( // true
new Big(0.1)
.plus(new Big(0.2))
.eq(0.3)
)