因为.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 不包含尾随零。因此,如果您需要它们进行输出,最好在输出数字的地方进行。或者唯一的其他选择是在添加之前对其进行 parseFloat Number 解析。
jsObject.number = Number(jsObject.number) + 0.1;
jsObject.number = parseFloat(jsObject.number) + 0.1;