📜  JavaScript 数字

📅  最后修改于: 2020-09-27 08:40:40             🧑  作者: Mango

在本教程中,您将在示例的帮助下了解JavaScript Number。

 

在JavaScript中,数字是原始数据类型。例如,

let a = 3;
let b = 3.13;

与其他一些编程语言不同,您不必使用intfloat等专门声明整数或浮点值。

您可以使用指数符号e来包含太大或太小的数字。例如,

let a1 = 5e9;
console.log(a1); //5000000000

let a2 = 5e-5;
console.log(a2); // 0.00005

数字也可以用十六进制表示法表示。例如,

let a = 0xff;
console.log(a); // 255

let b = 0x00 ;
console.log(b); // 0

+带数字的运算符

+与数字一起使用时,它用于添加数字。例如,

let a = 4 + 9;
console.log(a); // 13

+与数字和字符串,它用于连接它们。例如,

let a = '4' + 9;
console.log(a); // 49

当数字字符串与其他数字操作一起使用时,该数字字符串将转换为数字。例如,

let a = '4' - 2;
console.log(a); // 2

let a = '4' / 2;
console.log(a); // 2

let a = '4' * 2;
console.log(a); // 8

JavaScript NaN

在JavaScript中, NaN (非数字)是一个关键字,指示该值不是数字。

对具有字符串的数值执行算术运算(除+以外)将导致NaN 。例如,

let a = 4 - 'hello';
console.log(a); // NaN

内置函数 isNaN()可用于查找值是否为数字。例如,

let a = isNaN(9);
console.log(a); // false

let a = isNaN(4 - 'hello');
console.log(a); // true

当将typeof运算符用于NaN值时,它将给出数字输出。例如,

let a = 4 - 'hello';
console.log(a); // NaN
console.log(typeof a); // "number"

JavaScript无限

在JavaScript中,当完成的计算超过最大可能数时,将返回Infinity (或-Infinity )。例如,

let a = 2 / 0;
console.log(a); // Infinity

let a = -2 / 0;
console.log(a); // -Infinity

JavaScript BigInt

在JavaScript中,数字类型只能表示小于(2 53-1 )且大于-(2 53-1 )的数字 。但是,如果您需要使用更大的数字,则可以使用BigInt数据类型。

通过将n附加到整数的末尾来创建BigInt数字。例如,

// BigInt value
let value = 900719925124740998n;

// Adding two big integers
let value1 = value + 1n;
console.log(value1); // returns "900719925124740999n"

注意: BigInt是在较新版本的JavaScript中引入的,许多浏览器均不支持。访问JavaScript BigInt支持以了解更多信息。


JavaScript数字以64位存储

在JavaScript中,数字以64位格式IEEE-754存储,也称为“双精度浮点数”。

 

数字以64位存储(数字以0至51位存储,指数以52至62位存储,符号以63位存储)

Numbers Exponent Sign
52 bits(0 – 51) 11 bits(52- 62) 1 bit(63)

精度问题

对浮点数进行运算会导致某些意外结果。例如,

let a = 0.1 + 0.2;
console.log(a); // 0.30000000000000004

结果应该是0.3而不是0.30000000000000004 。发生此错误的原因是,在JavaScript中,数字以二进制形式存储,以在内部表示十进制数字。而且十进制数字不能完全以二进制形式表示。

要解决以上问题,您可以执行以下操作:

let a = (0.1 * 10 + 0.2 * 10) / 10;
console.log(a); // 0.3

您也可以使用toFixed()方法。

let a = 0.1 + 0.2;
console.log(a.toFixed(2)); // 0.30

toFixed(2)将十进制数四舍五入为两个十进制值。

let a = 9999999999999999
console.log(a); // 10000000000000000

注意 :整数最大为15位数字。


数字对象

您也可以使用new关键字创建数字。例如,

let a = 45;

// creating a number object
let b = new Number(45);

console.log(a); // 45
console.log(b); // 45

console.log(typeof a); // "number"
console.log(typeof b); // "object"

注意 :建议避免使用数字对象。使用数字对象会降低程序速度。


JavaScript编号方法

这是JavaScript中内置数字方法的列表。

Method Description
isNaN() determines whether the passed value is NaN
isFinite() determines whether the passed value is a finite number
isInteger() determines whether the passed value is an integer
isSafeInteger() determines whether the passed value is a safe integer
parseFloat(string) converts the numeric floating string to floating-point number
parseInt(string, [radix]) converts the numeric string to integer
toExponential(fractionDigits) returns a string value for a number in exponential notation
toFixed(digits) returns a string value for a number in fixed-point notation
toPrecision() returns a string value for a number to a specified precision
toString([radix]) returns a string value in a specified radix(base)
valueof() returns the numbers value
toLocaleString() returns a string with a language sensitive representation of a number

例如,

// check if a is integer
let a = 12;
console.log(Number.isInteger(a)); // true

// check if b is NaN
let b = NaN;
console.log(Number.isNaN(b)); // true

// display upto two decimal point
let d = 5.1234;
console.log(d.toFixed(2)); // 5.12

JavaScript数字属性

这是JavaScript中Number属性的列表。

Property Description
EPSILON returns the smallest interval between two representable numbers
MAX_SAFE_INTEGER returns the maximum safe integer
MAX_VALUE returns the largest possible value
MIN_SAFE_INTEGER returns the minimum safe integer
MIN_VALUE returns the smallest possible value
NaN represents ‘Not-a-Number’ value
NEGATIVE_INFINITY represents negative infinity
POSITIVE_INFINITY represents positive infinity
prototype allows the addition of properties to Number objects

例如,

// largest possible value
let a = Number.MAX_VALUE;
console.log(a); // 1.7976931348623157e+308

// maximum safe integer
let a = Number.MAX_SAFE_INTEGER;
console.log(a); // 9007199254740991

JavaScript Number()函数

Number() 函数用于将各种数据类型转换为数字。例如,

let a = '23'; // string
let b = true; // boolean

//converting to number
let result1 = Number(a);
let result2 = Number(b);

console.log(result1); // 23
console.log(result2); // 1

如果要了解有关数字转换的更多信息,请访问JavaScript类型转换。