JavaScript 数字类型

摘要:在本教程中,您将学习 JavaScript 的 Number 类型及其在有效处理数字时有用的方法。

JavaScript 数字类型的介绍

除了 基本数字类型 之外,JavaScript 还为数值提供了 Number 引用类型。

要创建 Number 对象,您可以使用 Number 构造函数并将数字值作为参数传入,如下所示

var numberObject = new Number(100);Code language: JavaScript (javascript)

此示例定义了一个名为 numberObject 的对象,其数值为 100

要从 Number 对象中获取基本值,可以使用 valueOf() 方法,如下所示

console.log(numberObject.valueOf()); // 100Code 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.00Code 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); // falseCode language: JavaScript (javascript)

在本教程中,您学习了 Number 类型以及一些用于格式化数字的有用方法。

本教程对您有帮助吗?