返回十进制数字作为数字类型javascript



我有一个函数,它将零加到一个数字上:例如,我们输入10,输出将是10.00。

问题是该函数的结果是字符串而不是数字类型,是否有办法返回10.00作为javascript中的数字?

const formatNumber = number => 
number.toFixed(Math.max(((`${number}`).split('.')[1] || '').length, 2));

Number.prototype.toFixed()只接受0或1个参数。它应该在你使用它之后返回一个数字。如果没有,无论什么原因,您可以使用String.prototype.toNumber()将其转换为Number类型。

由于缺乏声誉,我不能写评论,但我正在努力使我的回答尽可能详细,以便我可以保留这个答案。

您可以在这里使用toFixed()函数而不是使用split()和valueOf()返回字符串作为数字

<!DOCTYPE html>
<html>
<body>
<p>The toFixed() method returns a string with decimals:</p>
<p id="demo1"></p>
<p>The valueOf() method returns a number as a number:</p>
<p id="demo2"></p>
<script>
let x = 10;
x=x.toFixed(2); //toFixed(2) will return 10 with 2 decimal i.e. 10.00 as a string
document.getElementById("demo1").innerHTML = x;
document.getElementById("demo2").innerHTML = x.valueOf(); // valueOf() will return number here instead of string
</script>
</body>
</html>