Front/JS & jQuery

[js] JavaScript에서 정수끼리의 곱셈 처리 방법

오선지♬ 2024. 12. 20. 20:34
728x90
반응형

JavaScript에서 정수끼리의 곱셈이라도 부동소수점 연산 특성상

소수점 계산이 발생할 수 있습니다.

 

정확한 정수 연산이 필요하다면 BigInt를 사용하거나

결과를 명시적으로 처리하는 방법을 고려하세요.

 

  1. 결과를 정수로 강제 변환
    • 곱셈 결과가 미세하게 어긋날 경우 Math.round, Math.floor, Math.ceil 등을 사용해 정수로 처리할 수 있습니다.
    • const result = 0.1 * 0.2;
      console.log(Math.round(result)); // 0
  2. 정수 범위를 유지
    • 정수 계산에만 집중한다면, 값을 BigInt로 처리할 수 있습니다.
    • const bigIntResult = BigInt(999999999) * BigInt(999999999);
      console.log(bigIntResult); // 999999998000000001n
  3. 정밀도 제한
    • toFixed 또는 toPrecision을 사용해 소수점을 제한하여 표시합니다.
    • const precise = (3 * 0.1).toFixed(2);
      console.log(precise); // "0.30"
  4. 라이브러리 사용
    • 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
반응형