我是不是遗漏了什么?

var someNumber = 123.456;
someNumber = someNumber.toFixed(2);
alert(typeof(someNumber));
//alerts string

为什么.toFixed()返回一个字符串?

我想把这个数四舍五入到两位十进制数字。


当前回答

当它格式化一个数字时,你期望它返回什么?如果你有一个数字,你几乎不能对它做任何事情,因为例如2 == 2.0 == 2.00等,所以它必须是一个字符串。

其他回答

可能来不及回答,但您可以将输出与1相乘以再次转换为数字,这里是一个例子。

Const x1 = 1211.1212121; const x2 = x1.toFixed(2)*1; console.log (typeof (x2));

你应该像下面这样使用它。

var someNumber: number = 0.000000;
someNumber = Number(someNumber.toFixed(2))

当它格式化一个数字时,你期望它返回什么?如果你有一个数字,你几乎不能对它做任何事情,因为例如2 == 2.0 == 2.00等,所以它必须是一个字符串。

为什么不将结果乘以1,即

someNumber.toFixed(2) * 1

为什么不使用parseFloat呢?

var someNumber = 123.456;
someNumber = parseFloat(someNumber.toFixed(2));
alert(typeof(someNumber));
//alerts number