При сложении в JavaScript возникает много знаков после запятой?
Скорей всего особенность чисел с плавающей запятой.
Дело в том, что при кодировании некоторых чисел двоичный код получается бесконечным. Например 0.1 в двоичной системе — 0.0(0011). В памяти компьютера это будет 1.1001100110011001100110011001100110011001100110011010b * 2^(-4), а при переводе в десятичную — 0.10000000000000000555111512.

ИМХО это одна из проблем динамической типизации.
Вообще-то вот неточные вычисления. Там есть почему и как бороться, хотя тут вообщем-то уже ответили. Но это как прув, так как сайт вполне авторитетный.

Кстати, я начал изучения javacript с этого учебника. Сразу в голове, конечно, не уложится, но во-время написания кода всплывет и спасет от таких детских ошибок.