Зачем приводить к числу при округлении?
К числу приводится не result, a то, что возвращает toFixed() (это строка).
Чтобы всё понять, достаточно выполнить вот такой код:var result = 0.1 + 0.2;
alert(result.toFixed(10));
alert(+result.toFixed(10));
Потому что 0.1 + 0.2 будет 0.30000000000000004
Таков механизм работы с дробными числами. 
+toFixed это такой кривой способ отбросить этот несущественный хвост через приведение к строке и назад.
С ним надо быть аккуратней, потому что > (1e+21 / 100).toFixed(2)
'10000000000000000000.00'
> (1e+21 / 10).toFixed(2)
'100000000000000000000.00'
> (1e+21 / 1).toFixed(2)
'1e+21'