Потому что .toFixed () возвращает строку, поэтому вы заменяете число строкой. Простая регистрация покажет вам, что происходит.
var jsObject = new Object();
jsObject.number = 0;
for(i = 1; i <= 10; i++) {
jsObject.number += 0.1;
console.log(i, "before", jsObject.number, typeof jsObject.number)
jsObject.number = (jsObject.number).toFixed(1);
console.log(i, "after", jsObject.number, typeof jsObject.number)
}
Вывод будет:
1 before 0.1 number
1 after 0.1 string
2 before 0.10.1 string
"Uncaught TypeError: jsObject.number.toFixed is not a function",
JavaScript не содержит конечные нули. Поэтому, если они вам нужны для вывода, лучше сделать это там, где вы выводите число. Или единственный другой вариант - это проанализировать номер Float, прежде чем добавить к нему.
jsObject.number = Number(jsObject.number) + 0.1;
jsObject.number = parseFloat(jsObject.number) + 0.1;