摘要:在本教程中,您将学习 JavaScript 的 Number
类型及其在有效处理数字时有用的方法。
JavaScript 数字类型的介绍
除了 基本数字类型 之外,JavaScript 还为数值提供了 Number
引用类型。
要创建 Number
对象,您可以使用 Number
构造函数并将数字值作为参数传入,如下所示
var numberObject = new Number(100);
Code language: JavaScript (javascript)
此示例定义了一个名为 numberObject
的对象,其数值为 100
。
要从 Number
对象中获取基本值,可以使用 valueOf()
方法,如下所示
console.log(numberObject.valueOf()); // 100
Code language: JavaScript (javascript)
要将数字值作为字符串获取,可以使用 toString()
或 toLocaleString()
方法。
toString()
方法接受一个可选参数,用于确定以何种基数表示数字。基数(或底数)是位置数值系统中表示数字的唯一数字的数量。
例如,十进制系统使用 0 到 9 的十个数字,因此基数为 10。
请看下面的示例
var aNumber = new Number(10);
console.log(aNumber.toString()); // "10"
Code language: JavaScript (javascript)
在此示例中,aNumber
的基本值为 10,因此 toString()
方法在十进制系统中返回 10。
但是,下面的示例返回 aNumber
变量的二进制形式。
console.log(aNumber.toString(2)); // "1010"
Code language: JavaScript (javascript)
如果您在基本数字值上调用方法,JavaScript 会将其临时转换为 Number
对象。此功能称为 JavaScript 中的基本包装类型。例如
let x = 10;
console.log(x.toString(16)); // "a"
Code language: JavaScript (javascript)
格式化数字
要以指定的位数格式化数字,可以使用 toFixed()
方法。
toFixed()
方法接受一个参数,表示应使用多少个小数位。
numberObject.toFixed(decimalPlaces);
Code language: CSS (css)
toFixed()
方法返回使用定点表示法表示的相应数字字符串。以下是一个示例。
var distance = 19.006
console.log(distance.toFixed(2)); // 19.01
distance = 19.004;
console.log(distance.toFixed(2)); // 19.00
Code language: JavaScript (javascript)
需要注意的是,Web 浏览器可能使用不同的舍入方法。因此,在使用 toFixed()
方法时要谨慎,尤其是在处理货币值时。
要以 e 表示法格式化数字,可以使用 toExponential()
方法,如下面的示例所示。
var x = 10, y = 100, z = 1000;
console.log(x.toExponential());
console.log(y.toExponential());
console.log(z.toExponential());
// "1e+1"
// "1e+2"
// "1e+3"
Code language: JavaScript (javascript)
要获取数字对象的字符串表示形式,并指定精度,可以使用 toPrecision()
方法。
numberObject.toPrecision(precision);
Code language: CSS (css)
precision
参数决定有效数字的数量。
toPrecision()
方法返回 Number
对象的字符串表示形式,以指数表示法或定点表示法表示,舍入到精度有效数字。
请注意,如果省略 precision 参数,toPrecision()
方法的行为将与 toString()
方法类似。请看下面的示例
let x = 9.12345;
console.log(x.toPrecision()); // '9.12345'
console.log(x.toPrecision(4)); // '9.123'
console.log(x.toPrecision(3)); // '9.12'
console.log(x.toPrecision(2)); // '9.1'
console.log(x.toPrecision(1)); // '9'
Code language: JavaScript (javascript)
在某些情况下,例如以下情况,可能会返回 e 表示法
x = 123.5;
console.log(x.toPrecision(2)); // "1.2e+2"
Code language: JavaScript (javascript)
JavaScript Number 对象与基本数字
下表说明了 Number
对象和基本数字之间的区别
运算符 | Number 对象 | 数字值 |
---|---|---|
typeof | "object" | "number" |
instanceof Number | true | false |
以下是一些示例
let numberObject = new Number(10);
let number = 10;
// typeof
console.log(typeof numberObject);
console.log(typeof number);
// instanceof
console.log(numberObject instanceof Number); // true
console.log(number instanceof Number); // false
Code language: JavaScript (javascript)
在本教程中,您学习了 Number
类型以及一些用于格式化数字的有用方法。