숫자 반올림하기

JavaScript:
숫자 반올림하기

어떻게 하는가:

다음은 JavaScript에서 Math.round(), Math.ceil(), Math.floor()를 사용하여 숫자를 반올림하는 방법입니다:

let originalNumber = 2.567;

let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber);    // 3
let rounded = Math.round(originalNumber);     // 3 (.567이 .5보다 크기 때문에)

console.log(roundedDown); // 출력: 2
console.log(roundedUp);   // 출력: 3
console.log(rounded);     // 출력: 3

특정 소수점 자리수까지 고정하려면 toFixed()를 사용하십시오:

let twoDecimals = originalNumber.toFixed(2); // "2.57" (문자열을 반환)

console.log(twoDecimals); // 출력: "2.57"

단항 덧셈 또는 Number()를 사용하여 문자열을 다시 숫자로 변환합니다:

let numberAgain = +twoDecimals; // 2.57

console.log(numberAgain); // 출력: 2.57

심층 분석

숫자 반올림은 새로운 것이 아닙니다; 숫자가 있는 이래로 있었습니다. JavaScript에서 Math.round()는 “반올림” 타이브레이킹을 사용합니다: 소수 부분이 0.5인 경우 가장 가까운 짝수 숫자로 반올림합니다.

더 많은 제어가 필요한 경우 toFixed()를 사용할 수 있지만, 문자열을 반환한다는 것을 기억하세요. 숫자로 다시 변환하는 것은 추가 단계일 수 있지만 숫자 유형으로 계속 작업하게 보장합니다.

대안이 있나요? 더 세밀한 제어를 위해 lodash 같은 라이브러리는 _.round(number, [precision=0])을 제공합니다. 또는, 더 신규의 Intl.NumberFormat은 반올림뿐만 아니라 고정밀 포매팅을 제공합니다.

정밀도에 관해서는, JavaScript에서 부동 소수점의 괴상함을 주의하세요. 0.1 + 0.2가 정확히 0.3과 같지 않은 이유는 숫자가 저장되는 방식 때문입니다. 때때로, 이런 부동 소수점 오류를 수정하기 위해 반올림이 필요하게 됩니다.

참고할 것