JavaScript 数字方法


目录

    显示目录


JavaScript 数字方法

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

toString()

以字符串形式返回数字

toExponential()

返回以指数表示法书写的数字

toFixed()

返回用多个小数位书写的数字

toPrecision()

返回以指定长度写入的数字

ValueOf()

返回一个数字作为数字


toString() 方法

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

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

例子

let x = 123;
x.toString();
(123).toString();
(100 + 23).toString();

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The toString() method converts a number to a string.</p>

<p id="demo"></p>

<script>
let x = 123;
document.getElementById("demo").innerHTML =
  x.toString() + "<br>" +
   (123).toString() + "<br>" +
   (100 + 23).toString();
</script>

</body>
</html>

toExponential() 方法

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

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

例子

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

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



toFixed() 方法

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

例子

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

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


toPrecision() 方法

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The toPrecision() method returns a string, with a number written with a specified length:</p>

<p id="demo"></p>

<script>
let x = 9.656;
document.getElementById("demo").innerHTML = 
  x.toPrecision() + "<br>" +
  x.toPrecision(2) + "<br>" +
  x.toPrecision(4) + "<br>" +
  x.toPrecision(6);  
</script>

</body>
</html>

valueOf() 方法

valueOf() 返回一个数字作为数字。

例子

let x = 123;
x.valueOf();
(123).valueOf();
(100 + 23).valueOf();

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Number Methods</h2>

<p>The valueOf() method returns a number as a number:</p>

<p id="demo"></p>

<script>
let x = 123;

document.getElementById("demo").innerHTML = 
  x.valueOf() + "<br>" +
  (123).valueOf() + "<br>" +
  (100 + 23).valueOf();
</script>

</body>
</html>

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

valueOf() 方法在 JavaScript 内部用于转换 Number 对象到原始值。

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

所有 JavaScript 数据类型都有一个 valueOf() 和一个 toString() 方法。


将变量转换为数字

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

Number()

返回从其参数转换而来的数字。

parseFloat()

解析其参数并返回一个浮点数

parseInt()

解析其参数并返回一个整数

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


Number() 方法

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

例子

Number(true);
Number(false);
Number("10");
Number("  10");
Number("10  ");
Number(" 10  ");
Number("10.33");
Number("10,33");
Number("10 33");
Number("John");

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The Number() method converts variables to numbers:</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
  Number(true) + "<br>" +
  Number(false) + "<br>" +
  Number("10") + "<br>" + 
  Number("  10") + "<br>" +
  Number("10  ") + "<br>" +
  Number(" 10  ") + "<br>" +
  Number("10.33") + "<br>" + 
  Number("10,33") + "<br>" +
  Number("10 33") + "<br>" +
  Number("John");
</script>

</body>
</html>


如果数字无法转换,则返回 NaN(不是数字)。


用于日期的 Number() 方法

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

例子

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

自己尝试一下→

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The Number() method can convert a date to a number:</p>

<p id="demo"></p>

<script>
let x = new Date("1970-01-01");
document.getElementById("demo").innerHTML = Number(x); 
</script>

</body>
</html>


笔记

Date() 方法返回自 1.1.1970 以来的毫秒数。

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The Number() method can convert a date to a number:</p>

<p id="demo"></p>

<script>
let x = new Date("1970-01-02");
document.getElementById("demo").innerHTML = Number(x); 
</script>

</body>
</html>


例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Methods</h2>

<p>The Number() method can convert a date to a number:</p>

<p id="demo"></p>

<script>
let x = new Date("2017-09-30");
document.getElementById("demo").innerHTML = Number(x); 
</script>

</body>
</html>



parseInt() 方法

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

例子

parseInt("-10");
parseInt("-10.33");
parseInt("10");
parseInt("10.33");
parseInt("10 20 30");
parseInt("10 years");
parseInt("years 10");

如果数字无法转换,则返回 NaN(不是数字)。


parseFloat() 方法

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

例子

parseFloat("10");
parseFloat("10.33");
parseFloat("10 20 30");
parseFloat("10 years");
parseFloat("years 10");

如果数字无法转换,则返回 NaN(不是数字)。


数字对象方法

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

Number.isInteger()

如果参数是整数,则返回 true

Number.isSafeInteger()

如果参数是安全整数,则返回 true

Number.parseFloat()

将字符串转换为数字

Number.parseInt()

将字符串转换为整数

数字方法不能用于变量

上面的数字方法属于 JavaScript 数字对象

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

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

TypeError X.isInteger 不是函数


Number.isInteger() 方法

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Numbers</h1>
<h2>The isInteger() Method</h2>

<p>The isInteger() method returns true if the argument is an integer.</p>
<p>Otherwise it returns false.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
Number.isInteger(10) + "<br>" + Number.isInteger(10.5);
</script>

</body>
</html>

Number.isSafeInteger() 方法

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

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

例子

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

自己尝试一下 →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Numbers</h1>
<h2>The isSafeInteger() Method</h2>

<p>The isSafeInteger() method returns true if the argument is a safe integer.</p>
<p>Otherwise it returns false.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML =
Number.isSafeInteger(10) + "<br>" + Number.isSafeInteger(12345678901234567890);
</script>

</body>
</html>

安全整数是从 -(253 - 1) 到 +(253 - 1) 的所有整数。
这是安全的:9007199254740991。这是不安全的:9007199254740992。


Number.parseFloat() 方法

Number.parseFloat() 解析字符串并返回数字。

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

例子

Number.parseFloat("10");
Number.parseFloat("10.33");
Number.parseFloat("10 20 30");
Number.parseFloat("10 years");
Number.parseFloat("years 10");

如果数字无法转换,则返回 NaN(不是数字)。

笔记

Number 方法 Number.parseInt()Number.parseFloat()



相同 全局方法parseInt()parseFloat()

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


Number.parseInt() 方法

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

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

例子

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(不是数字)。

完整的 JavaScript 数字参考

如需完整的编号参考,请访问我们的:

完整的 JavaScript 数字参考。

该参考包含所有 Number 属性和方法的描述和示例。