.toFixed is not a function

这是因为.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);
 
 
原文地址:https://www.cnblogs.com/pzw23/p/14593207.html