Great work!

XP to next level

BugEater

Floating Point Nightmare

Intermediate Manual QA 52 XP 52 min

Updated: 07/07/2026

Start Module

Open any JavaScript console and type 0.1 + 0.2. You will get 0.30000000000000004.

This is not a JavaScript bug. It's not a library bug. It is the fundamental nature of how binary computers represent decimal fractions — and it affects every language: Java, Python, C#, Go, Rust. Every single one.

Now imagine that discrepancy is a bank account balance. Or a drug dosage calculation. Or a sensor reading that controls industrial equipment.

The Binary Fraction Problem

Computers store numbers in binary (base 2). Some fractions that look simple in decimal — like 0.1 — cannot be represented exactly in binary, just like 1/3 cannot be represented exactly in decimal (0.333...). The computer rounds to the nearest representable value.

In most cases, the rounding is so small it doesn't matter. But accumulate enough floating-point operations — add a microloan interest rate a million times, for instance — and the error compounds into something visible.

What You'll Learn

  • How IEEE 754 floating-point representation works and why precision loss is inherent
  • Which types of calculations are most vulnerable to floating-point error
  • How to identify floating-point bugs in financial and scientific applications
  • Testing strategies: extreme precision inputs, accumulated operations, rounding edge cases

Your Practice Challenge

The Micro-loan Interest calculator applies a tiny percentage to a loan amount. Enter specific values and hunt for the rounding bug where a few cents become a perpetual decimal like 0.000000004.

Module content