摘要
本文主要收录了常用的javascript的数字操作,并附有较为详细的说明和代码样例,掌握之后能够处理大部分计算问题。
Number(value: unknown)
直接调用会将传入参数转变为 Number 类型,如果 value 不能被转换,则返回 NaN。 如果采用构造函数的方式调用,则返回 Number 对象,该对象不强等于数字。
js
Number("123"); // returns the number 123
Number("123") === 123; // true
Number("unicorn"); // NaN
Number(undefined); // NaN
new Number('42') === 42 // false
new Number('42') == 42 // true
常用常量
Number.NaN
不是数字的常量,但是不能使用 ===
进行比较,只能使用 Number.isNaN()
js
Number.NaN === Number(undefined) // false
Number.isNaN(Number(undefined)) // true
Number.POSITIVE_INFINITY
正无穷
Number.NEGATIVE_INFINITY
负无穷
转换
Number.parseInt(string, radix);
解析字符串并返回一个整数 radix
是从 2
到 36
的整数,表示进制的基数。如果超出这个范围,将返回 NaN
。
js
Number.parseInt('1010', 2) // 10
Number.parseInt('1010') // 1010
// parseInt() 只能转整数,不能转换浮点数
Number.parseInt('10.10') // 10
Number.parseFloat(string)
把一个字符串解析成浮点数。
js
Number.parseFloat('10.10') // 10.1
Number.prototype.toFixed(digits: Number)
格式化数字,返回对应数字字符串
,对数字进行小数点后位数的格式化,digits 小数点后数字的个数;介于 0 到 20(包括)之间
js
function financial(x) {
return Number.parseFloat(x).toFixed(2);
}
console.log(financial(123.456));
// Expected output: "123.46"
console.log(financial(0.004));
// Expected output: "0.00"
console.log(financial('1.23e+5'));
// Expected output: "123000.00"
Number.prototype.toString(radix: Number)
将数字转换为对应字符串,radix
指定要用于数字到字符串的转换的基数 (从 2 到 36)。如果未指定 radix 参数,则默认值为 10。
js
console.log((17).toString()); // 输出 '17'
console.log((17.2).toString()); // 输出 '17.2'
console.log((-10).toString(2)); // 输出 '-1010'
console.log((-0xff).toString(2)); // 输出 '-11111111'