728x90
반응형
JavaScript에서 정수끼리의 곱셈이라도 부동소수점 연산 특성상
소수점 계산이 발생할 수 있습니다.
정확한 정수 연산이 필요하다면 BigInt를 사용하거나
결과를 명시적으로 처리하는 방법을 고려하세요.
- 결과를 정수로 강제 변환
- 곱셈 결과가 미세하게 어긋날 경우 Math.round, Math.floor, Math.ceil 등을 사용해 정수로 처리할 수 있습니다.
-
const result = 0.1 * 0.2; console.log(Math.round(result)); // 0
- 정수 범위를 유지
- 정수 계산에만 집중한다면, 값을 BigInt로 처리할 수 있습니다.
-
const bigIntResult = BigInt(999999999) * BigInt(999999999); console.log(bigIntResult); // 999999998000000001n
- 정밀도 제한
- toFixed 또는 toPrecision을 사용해 소수점을 제한하여 표시합니다.
-
const precise = (3 * 0.1).toFixed(2); console.log(precise); // "0.30"
- 라이브러리 사용
- Decimal.js, Big.js 같은 라이브러리를 사용해 정확한 부동소수점 계산을 수행합니다.
-
const Decimal = require('decimal.js'); const result = new Decimal(0.1).times(0.2); console.log(result.toString()); // "0.02"
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[js][datatables] 엑셀 파일명 특수문자 처리 (0) | 2024.12.22 |
---|---|
[js] .join("") (0) | 2024.12.21 |
[js] 두 개의 정수를 곱했음에도 결과가 소수점으로 계산되는 경우 (0) | 2024.12.19 |
[js] 파일전송 클라이언트 전송 예제 (0) | 2024.12.18 |
[jquery] Object.assign() 와 $.extend 차이 (0) | 2024.12.16 |