edit: The OP has accepted my pull request and this explanation is now directly available on the website.<p>It&#x27;s a shame that the web page doesn&#x27;t explain why floating point numbers are inaccurate when it comes to decimals. It&#x27;s actually pretty simple. When you have a base 10 system (like ours), it can only express fractions that use a prime factor of the base. The prime factors of 10 are 2 and 5. So 1&#x2F;2, 1&#x2F;4, 1&#x2F;5, 1&#x2F;8, and 1&#x2F;10 can all be expressed cleanly because the denominators all use prime factors of 10. In contrast, 1&#x2F;3, 1&#x2F;6, and 1&#x2F;7 are all repeating decimals because their denominators use a prime factor of 3 or 7.<p>In binary (or base 2), the only prime factor is 2. So you can only express fractions cleanly which only contain 2 as a prime factor. In binary, 1&#x2F;2, 1&#x2F;4, 1&#x2F;8 would all be expressed cleanly as decimals. While, 1&#x2F;5 or 1&#x2F;10 would be repeating decimals.<p>So 0.1 and 0.2 (1&#x2F;10 and 1&#x2F;5) while clean decimals in a base 10 system, are repeating decimals in the base 2 system the computer is operating in. When you do math on these repeating decimals, you end up with leftovers which carry over when you convert the computer&#x27;s base 2 (binary) number into a more human readable base 10 number.