Email or username:

Password:

Forgot your password?
Top-level
Alex Schroeder

The whole page about rounding is mind blowing. And then the comments about different programming languages and number representations in computers and so much more.

1 comment
Alex Schroeder

The page at the very beginning of the conversation between @22 and @wim_v12e is https://0.30000000000000004.com/ by the way. The domain name says it all.

"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/2, 1/4, 1/5, 1/8, and 1/10 can all be expressed cleanly because the denominators all use prime factors of 10. In contrast, 1/3, 1/6, 1/7 and 1/9 are all repeating decimals because their denominators use a prime factor of 3 or 7.

In binary (or base-2), the only prime factor is 2, so you can only cleanly express fractions whose denominator has only 2 as a prime factor. In binary, 1/2, 1/4, 1/8 would all be expressed cleanly as decimals, while 1/5 or 1/10 would be repeating decimals. So 0.1 and 0.2 (1/10 and 1/5), while clean decimals in a base-10 system, are repeating decimals in the base-2 system the computer uses. When you perform math on these repeating decimals, you end up with leftovers which carry over when you convert the computer’s base-2 (binary) number into a more human-readable base-10 representation."

The rest of the page is about adding 0.1 and 0.2. 😹

The page at the very beginning of the conversation between @22 and @wim_v12e is https://0.30000000000000004.com/ by the way. The domain name says it all.

"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/2, 1/4, 1/5, 1/8, and 1/10 can all be expressed cleanly because the denominators all use prime factors of 10. In contrast, 1/3, 1/6, 1/7 and 1/9 are all repeating decimals because their denominators...

Go Up