How a 0.1 microsecond rounding error made the Patriot missile system miss a Scud after 100 hours

Franc0Fernand0 · x · 2026-10-23

A classic floating-point failure retold: the Patriot system's clock counter incremented every 0.1s, and software multiplied it by 0.1 into a 24-bit register. Since 0.1 has no finite binary expansion, each tick was truncated by 0.000000095s. After 100 hours (3.6M ticks), the computed time drifted 0.34 seconds — enough that the system looked for the incoming Scud in the wrong place.

The post introduces issue #156 of the Polymathic Engineer newsletter on computing with floats (adding, multiplying, comparing), with the takeaway that single-operation accuracy loss is small, but errors accumulate across sequences of operations — and nothing in the software was technically 'broken'.

Original post →

More from Research

Research channel →