二维码

JavaScript 数字方法

JavaScript 数字方法


JavaScript 数字方法

这些数字方法可用于所有 JavaScript 数字:

方法 描述
toString() 以字符串形式返回一个数字
toExponential() 返回以指数表示法书写的数字
toFixed() 返回用小数点后数表示的数字
toPrecision() 返回以指定长度写入的数字
ValueOf() 以数字形式返回数字

toString()方法

toString()该方法以字符串形式返回一个数字。

所有数字方法都可用于任何类型的数字(文本、变量或表达式):

1
2
3
4
let x = 123;  
x.toString();
(123).toString();
(100 + 23).toString();


toExponential()方法

toExponential()返回一个字符串,其中的数字四舍五入并使用指数表示法书写。

参数定义小数点后面的字符数:

1
2
3
4
let x = 9.656;  
x.toExponential(2);
x.toExponential(4);
x.toExponential(6);

该参数是可选的。如果不指定它,JavaScript 将不会对数字进行四舍五入。


toFixed()方法

toFixed()返回一个字符串,其中包含数字 用指定数量的 小数:

1
2
3
4
5
let x = 9.656;  
x.toFixed(0);
x.toFixed(2);
x.toFixed(4);
x.toFixed(6);

toFixed(2)非常适合与金钱打交道。


toPrecision()方法

toPrecision()返回一个字符串,其中的数字用 指定长度:

1
2
3
4
5
let x = 9.656;  
x.toPrecision();
x.toPrecision(2);
x.toPrecision(4);
x.toPrecision(6);


valueOf()方法

valueOf()以数字形式返回一个数字。

1
2
3
4
let x = 123;  
x.valueOf();
(123).valueOf();
(100 + 23).valueOf();

在 JavaScript 中,数字可以是原始值 (typeof = number) 或 对象 (typeof = object)。

valueOf()该方法在 JavaScript 内部用于转换数字 对象设置为基元值。

没有理由在代码中使用它。

所有 JavaScript 数据类型都有 valueOf()toString()


将变量转换为数字

可以使用 3 种 JavaScript 方法 要将变量转换为数字:

方法 描述
Number() 返回从其参数转换而来的数字。
parseFloat() 分析其参数并返回浮点数
parseInt() 分析其参数并返回一个整数

上述方法不是数字方法。它们是全局 JavaScript 方法。


Number()方法

Number()该方法可用于将 JavaScript 变量转换为数字:

1
2
3
4
5
6
7
8
9
10
Number(true);  
Number(false);
Number("10");
Number("  10");
Number("10  ");
Number(" 10  ");
Number("10.33");
Number("10,33");
Number("10 33");
Number("John");

如果无法转换数字,则返回NaN(Not a Number)。


用于日期的 Number()方法

Number()还可以将日期转换为数字。

1
Number(new Date("1970-01-01"))

注意

Date()该方法返回自 1 年 1 月 1970 日以来的毫秒数。

1970-01-02 和 1970-01-01 之间的毫秒数为 86400000:

1
Number(new Date("1970-01-02"))

1
Number(new Date("2017-09-30"))


parseInt()方法

parseInt()分析字符串并返回整数。空间是 允许。仅返回第一个数字:

1
2
3
4
5
6
7
parseInt("-10");  
parseInt("-10.33");
parseInt("10");
parseInt("10.33");
parseInt("10 20 30");
parseInt("10 years");
parseInt("years 10");

如果无法转换数字,则返回NaN(Not a Number)。


parseFloat()方法

parseFloat()分析字符串并返回一个数字。空间是 允许。仅返回第一个数字:

1
2
3
4
5
parseFloat("10");  
parseFloat("10.33");
parseFloat("10 20 30");
parseFloat("10 years");
parseFloat("years 10");

如果无法转换数字,则返回NaN(Not a Number)。


Number 对象方法

这些对象方法属于 Number 对象:

方法 描述
Number.isInteger() 如果参数为整数,则返回 true
Number.isSafeInteger() 如果参数是安全整数,则返回 true
Number.parseFloat() 将字符串转换为数字
Number.parseInt() 将字符串转换为整数

Number 方法不能用于变量

上面的 number 方法属于 JavaScript Number 对象

这些方法只能像 Number.isInteger() 一样访问。

使用 X.isInteger() 其中 X 是变量,将导致错误:

TypeError X.isInteger 不是函数。


Number.isInteger()方法

如果参数是整数,则 Number.isInteger() 方法返回 true

1
2
Number.isInteger(10);  
Number.isInteger(10.5);


Number.isSafeInteger()方法

安全整数是可以精确表示为双精度数字的整数。

如果参数是安全的整数,则Number.isSafeInteger()该方法返回true

1
2
Number.isSafeInteger(10);  
Number.isSafeInteger(12345678901234567890);

安全整数是 -(253- 1) 至 +(253- 1).
这是安全的:9007199254740991。这是不安全的:9007199254740992。


Number.parseFloat()方法

Number.parseFloat()分析字符串并返回一个数字。

允许使用空格。仅返回第一个数字:

1
2
3
4
5
Number.parseFloat("10");  
Number.parseFloat("10.33");
Number.parseFloat("10 20 30");
Number.parseFloat("10 years");
Number.parseFloat("years 10");

如果无法转换数字,则返回NaN(Not a Number)。

注意

Number 方法 Number.parseInt()Number.parseFloat()全局方法 parseInt()parseFloat() 相同。

目的是全局变量的模块化(以便更轻松地在浏览器之外使用相同的 JavaScript 代码)。


Number.parseInt()方法

Number.parseInt()分析字符串并返回整数。

允许使用空格。仅返回第一个数字:

1
2
3
4
5
6
7
Number.parseInt("-10");  
Number.parseInt("-10.33");
Number.parseInt("10");
Number.parseInt("10.33");
Number.parseInt("10 20 30");
Number.parseInt("10 years");
Number.parseInt("years 10");

如果无法转换数字,则返回NaN(Not a Number)。