这是因为.toFixed前面的值不是数字造成的。
可能你会疑惑,明明前面的是数字啊?!
下面是我的实例报错
var aa=(this.form.bhsje*this.form.sl+this.form.bhsje).toFixed(2);
如果仅仅是(this.form.bhsje*this.form.sl).toFixed(2);这样倒是不会报错,因为两数相乘,就算是字符串数字也没有问题。
但是(this.form.bhsje*this.form.sl+this.form.bhsje).toFixed(2);就不一样了后面的+,因为是输入框,导致结果变成了字符串的+,然后文本类型调用.toFixed(2)就会报错,所以需要在运算前把那些字符串数字转换成数字类型。
尽管var aa= Number(this.form.bhsje * this.form.sl + this.form.bhsje).toFixed(2);这样,虽然不报错,但是结果却不是正确的结果。
最好每一个都需要转
var aa = (
Number(this.form.bhsje) * Number(this.form.sl) +
Number(this.form.bhsje)
).toFixed(2);