Дык это понятно, погрешность накапливается. Для общего случая округление до 15 знаков - достаточно, чтоб наверняка - можно взять 10.
Естесно никто не застрахован от:
Number.prototype.toNumFixed=function(n){return +this.toFixed(+n||10)}
i=10000;
n=0
while(i--)n+=0.1
alert([n,n.toNumFixed()])
Но эт маловероятно в реальной практике.
Да и вообще по-хорошему нужно указывать вручную до какого знака округлять.