JavaScript BigInt

JavaScript BigInt 变量用于存储太大而无法用普通 JavaScript 数字表示的大整数值。

JavaScript 整数精度

JavaScript 整数最多只能精确到 15 位:

整数精度

let x = 999999999999999;
let y = 9999999999999999;

స్వయంగా ప్రయత్నించండి

在 JavaScript 中,所有数字都以 64 位浮点格式(IEEE 754 标准)存储。

根据此标准,大整数无法被精确表示,会被四舍五入。

因此,JavaScript 只能安全地表示以下范围内的整数:

  • 最大为 9007199254740991(253-1)
  • 最小为 -9007199254740991(-(253-1))

超出此范围的整数值会失去精度。

如何创建 BigInt

如需创建 BigInt,可以在整数末尾添加 n,或调用 BigInt() 函数:

例子 1

let x = 9999999999999999;
let y = 9999999999999999n;

స్వయంగా ప్రయత్నించండి

例子 2

let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345);

స్వయంగా ప్రయత్నించండి

BigInt:一种新的 JavaScript 数据类型

BigInt 的 JavaScript 类型是 "bigint

实例

let x = BigInt(999999999999999);
let type = typeof x;

స్వయంగా ప్రయత్నించండి

BigInt 是 JavaScript 中的第二个数值数据类型(在 Number 之后)。

对于 BigInt,JavaScript 支持的数据类型总数为 8 种:

  1. String
  2. Number
  3. Bigint
  4. Boolean
  5. Undefined
  6. Null
  7. Symbol
  8. Object

BigInt 运算符

可用于 JavaScript Number 的运算符也可用于 BigInt。

BigInt 乘法实例

let x = 9007199254740995n;
let y = 9007199254740995n;
let z = x * y;

స్వయంగా ప్రయత్నించండి

గమనిక

BigInt మరియు Number మధ్య గణిత కార్యకలాపాలు (రూపాంతరం కాల్పడుతుంది సమాచారం కోల్పోతుంది).

BigInt లో నియమిత వెడల్పు లేదు కాబట్టి బిగ్యాంట్ ను నియమిత వెడల్పు చేయలేము (>>>).

BigInt చివరి అంకితం

BigInt లో చివరి అంకితం లేదు.

BigInt గుణకం ఇన్స్టాన్స్

let x = 5n;
let y = x / 2;
// అపరిచయం: బిగ్యాంట్ మరియు ఇతర రకాలను కలపలేము, ప్రత్యక్ష రూపాంతరం ఉపయోగించండి.
let x = 5n;
let y = Number(x) / 2;

స్వయంగా ప్రయత్నించండి

BigInt హెక్సడెసిమల్, ఒక్టల్ మరియు బైనరీ

BigInt హెక్సడెసిమల్, ఒక్టల్ లేదా బైనరీ ప్రకటనలో కూడా రావచ్చు:

BigInt హెక్సడెసిమల్ ఇన్స్టాన్స్

let hex = 0x20000000000003n;
let oct = 0o400000000000000003n;
let bin = 0b100000000000000000000000000000000000000000000000000011n;

స్వయంగా ప్రయత్నించండి

ప్రెసిషన్ క్విరీసీ

రూపాంతరం ప్రోగ్రామ్ సురక్షితతను బాధించవచ్చు:

MAX_SAFE_INTEGER ఇన్స్టాన్స్

9007199254740992 === 9007199254740993; // సరైనది !!!

స్వయంగా ప్రయత్నించండి

బ్రౌజర్ మద్దతు

2020 సంవత్సరం 9 నెల నుండి అన్ని బ్రౌజర్లు BigInt ను మద్దతు ఇస్తున్నాయి:

క్రోమ్ ఎడ్జ్ ఫైర్ఫాక్స్ సఫారీ ఒపెరా
క్రోమ్ 67 ఎడ్జ్ 79 ఫైర్ఫాక్స్ 68 సఫారీ 14 ఒపెరా 54
2018 సంవత్సరం 5 నెల 2020 సంవత్సరం 1 నెల 2019 సంవత్సరం 7 నెల 2020 సంవత్సరం 9 నెల 2018 సంవత్సరం 6 నెల

కనీస మరియు గరిష్ట సురక్షిత పరిమాణాలు

ES6 నంబర్ ఆబ్జెక్ట్కు max మరియు min అట్రిబ్యూట్స్ జోడించింది:

  • MAX_SAFE_INTEGER
  • MIN_SAFE_INTEGER

MAX_SAFE_INTEGER ఇన్స్టాన్స్

let x = Number.MAX_SAFE_INTEGER;

స్వయంగా ప్రయత్నించండి

MIN_SAFE_INTEGER ఇన్స్టాన్స్

let x = Number.MIN_SAFE_INTEGER;

స్వయంగా ప్రయత్నించండి

కొత్త నంబర్ మెథడ్స్

ES6 కు నంబర్ ఆబ్జెక్ట్కు రెండు కొత్త మెథడ్స్ జోడించబడ్డాయి:

  • Number.isInteger()
  • Number.isSafeInteger()

Number.isInteger() పద్ధతి

పరామీతి సంఖ్య ఉన్నప్పుడు, Number.isInteger() పద్ధతి తిరిగి పంపుతుంది true.

isInteger() ఎక్సంప్లోర్

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

స్వయంగా ప్రయత్నించండి

Number.isSafeInteger() పద్ధతి

సురక్షిత పరిమితి సంఖ్యలు ద్వారా సరిగ్గా ప్రస్పషించబడే పరిమితి సంఖ్యలు ఉంటాయి.

పరామీతి సంఖ్య ఉన్నప్పుడు, Number.isSafeInteger() పద్ధతి తిరిగి పంపుతుంది true.

isSafeInteger() ఎక్సంప్లోర్

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

స్వయంగా ప్రయత్నించండి

సురక్షిత పరిమితి సంఖ్యలు అనేది -(253 నుండి +(253 అన్ని పరిమితి సంఖ్యలు.

ఈది ఒక సురక్షిత పరిమితి సంఖ్య: 9007199254740991. ఈది ఒక సురక్షిత పరిమితి సంఖ్య కాదు: 9007199254740992.