Because:

JS uses IEEE 754 double precision version (64-bit), and this problem exists in all IEEE 754 languages.

Solutions:

ParseFloat ((0.1 + 0.2) toFixed (10))