开发者问题收集

Javascript toFixed 不是一个函数

2015-08-11
17441

嗨,问题如下:

我定义:

var total = 0;

function add(a){
  total+=a;
  var float_num = total.toFixed(2);
  return float_num;
}

JS 给我一个错误说 Uncaught TypeError total.toFixed 不是函数

我不明白。我声明的总数不是数字类型?

3个回答

我认为防止错误发生的最简单方法是始终将参数解析为数字:

var total = 0;
function add(a){
  total+=a;
  var float_num = Number(total).toFixed(2);
  return float_num;
}
HakuteiJ
2017-07-12

检查上面的任何代码是否已重新定义 Number 原型上的 toFixed,例如

Number.prototype.toFixed = {};

var total = 0;

function add(a) {
    total += a;
    var float_num = total.toFixed(2);
    return float_num;
}

add(2)

是复制错误的一种方法。

potatopeelings
2015-08-11

这取决于 a 的值。如果 a 恰好是 “string” ,那么您尝试执行的操作是:

"0string".toFixed(2)

这应该会引发错误。

slebetman
2015-08-11