为什么javascript中的parseFloat会返回字符串类型?
我搜索,只发现这一个与我的问题有关,但不完全一样,因为我用toFixed而不是toPrecision。 Why does toPrecision return a String?为什么javascript中的parseFloat会返回字符串类型?
这里是我的代码
var oldv = parseFloat(document.getElementById('total').textContent).toFixed(2);
alert(typeof oldv); // returns string
var testv = parseInt(document.getElementById('total').textContent);
alert(typeof testv); // returns number
我需要进一步的数学步骤,所以字符串类型搞砸了...... 为什么呢?怎么解决? TIA
如文档提到,toFixed
返回
使用定点表示
如果你需要使用返回的结果为数字表示给定数量的字符串,就可以使用内置对象Number
:
var oldv = parseFloat(Math.PI).toFixed(2);
console.log(oldv);
console.log(typeof oldv); // returns string
var num = Number(oldv);
console.log(num);
console.log(typeof num); // returns number
谢谢。这工作。 –
这是令我困惑的行为,'toFixed'应该返回'Number'。 – Taurus
Number.prototype.toFixed()函数应该按照文档found here返回字符串类型。
如果需要用数字执行进一步的算术可以使用一元加运算符之前的变量名称(+)记载here像这样迫使它放回数字形式:
var oldv = parseFloat(document.getElementById('total').textContent).toFixed(2);
alert(typeof oldv); // Returns string
alert(typeof +oldv); // Returns number
['toFixed'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)和['toPrecision'](https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision)都返回字符串。请阅读文档。 _“如何解决?” - 取决于你的目标是什么。 – Xufox