InterviewHubPRO
Section Overview
Q496

Question 496 of 521

Part 8: Modern JavaScript APIs, WeakRef, Proxy & Performance (464 - 521)

95%
JavaScript Internals (521 Qs)•Part 8: Modern JavaScript APIs, WeakRef, Proxy & Performance (464 - 521)

How does JavaScript handle floating point precision issues?

JavaScript uses IEEE 754 double-precision (64-bit) floating-point format, which can cause precision issues with decimal numbers.

javascript
 console.log(0.1 + 0.2); // 0.30000000000000004
 console.log(0.1 + 0.2 === 0.3); // false

Solutions:

  1. Using epsilon comparison:
javascript
    function areEqual(a, b) {
      return Math.abs(a - b) < Number.EPSILON;
    }
    console.log(areEqual(0.1 + 0.2, 0.3)); // true
  1. Rounding to fixed decimals:
javascript
    const result = Math.round((0.1 + 0.2) * 100) / 100; // 0.3
  1. Using toFixed() or toPrecision():
javascript
    const sum = (0.1 + 0.2).toFixed(2); // "0.30"
    const num = parseFloat(sum); // 0.3
  1. Working with integers (cents instead of dollars):
javascript
    const price1 = 10; // $0.10 as 10 cents
    const price2 = 20; // $0.20 as 20 cents
    const total = price1 + price2; // 30 cents
    const dollars = total / 100; // $0.30
  1. Using libraries for precise calculations:
javascript
    // decimal.js, big.js, or bignumber.js
    const Decimal = require('decimal.js');
    const result = new Decimal(0.1).plus(0.2); // 0.3