Ну может потому что у тебя переменная - не число? JS любит менять тип данных на лету, если где-то случайно прибавляется строка. В целом, этого легко избежать, если перед переменной, участвующей в сложнее, добавлять знак преобразования +.
let n1 = '5';
let n2 = 10;
let n3 = '2.5';
let result = '0';
result += n1 + n2 + n3;
console.log(result); // 05102.5
result = +result + +n1 + +n2 + +n3;
console.log(result); // 17.5