BigInt JavaScript

دروس سفارش:

جاوااسکریپت BigInt متغیر، بہت زیادہ بڑے اعداد کو محفوظ رکھنے کے لئے استعمال کئے جاتا ہے جو عوامي جاوااسکریپت نمبروں کے ذریعے نمائش ناکارگر ہوتا ہو

جاوااسکریپت صحیح عدد کی دقت

جاوااسکریپت کا صحیح عدد کا بہت زیادہ دقت کا حصول ممکن نہیں ہوتا، وہاں تک 15 دوسرے جنسوں کا استعمال کیاجاسکتا ہے

صحیح عدد کی دقت
لیٹائن x = 999999999999999;

آپ خود کوشش کریں

لیٹائن y = 9999999999999999;

جاوااسکریپت میں، تمام اعداد 64 بیٹ فلوٹ فورمت (IEEE 754 معیار) میں ذخیرہ کئے جاتے ہیں

اس معیار کے مطابق، بگائنٹ کی دقت کی تعین نہیں کی جاسکتی، جبکہ چورس وادی کی گنجائش میں رکھی جاسکتی ہے

  • بہت زیادہ 9007199254740991(253-1)
  • کم از کم -9007199254740991-(253-1) )

اس دوسرے دائرے کے بغیر کا مجموعہ کا جو بھی کیوئی صحیح عدد کا استعمال نکالنا میمکن ہوگا

bigint کا قیام کرسکتا ہے

bigint کا استعمال کریں تاکہ BigInt قائم کیا جاسکے ن، یا فراخ دینا BigInt() فنکشن:

مثال 1

لیٹائن x = 9999999999999999;
let y = 9999999999999999ن;

آپ خود کوشش کریں

مثال 2

let x = 1234567890123456789012345ن;
لیٹائن y = BigInt(1234567890123456789012345);

آپ خود کوشش کریں

BigInt: ایک نئی جاوااسکریپت جنس

BigInt کا جاوااسکریپت کا جنسبگائنٹ

مثال

لیٹائن x = BigInt(999999999999999);
لیٹائن type = typeof x;

آپ خود کوشش کریں

BigInt جاوااسکریپت میں دوسرا عددی جنس ہے (نمبر کے بعد)。

BigInt کے لئے، جاوااسکریپت میں پورائی اعداد کا مجموعہ 8 جنسوں کا ہوتا ہے:

  1. اسٹرنگ
  2. نمبر
  3. بگائنٹ
  4. بولین
  5. یونڈیفائنڈ
  6. نل
  7. سمبول
  8. آپجیکٹ

BigInt آپریئر

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;
// Error: Cannot mix BigInt and other types, use explicit conversion.
let x = 5n;
let y = Number(x) / 2;

آپ خود کوشش کریں

BigInt 十六进制、八进制和二进制

BigInt 也可以写成十六进制、八进制或二进制表示法:

BigInt 十六进制实例

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

آپ خود کوشش کریں

Precision Curiosity

舍入可能会危及程序安全:

MAX_SAFE_INTEGER مثال

9007199254740992 === 9007199254740993; // 为 true !!!

آپ خود کوشش کریں

浏览器支持

自 2020 年 9 月以来,所有浏览器都支持 BigInt:

Chrome Edge Firefox Safari Opera
Chrome 67 Edge 79 Firefox 68 Safari 14 Opera 54
2018 年 5 月 2020 年 1 月 2019 年 7 月 2020 年 9 月 2018 年 6 月

最小和最大安全整数

ES6 向 Number 对象添加了 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() طریقہ کار واپس کردار آتا ہے حق.

مثال isInteger()

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

آپ خود کوشش کریں

طریقہ Number.isSafeInteger()

اعداد صحیح جو دوبل پرجیسی صحت سے نمائش کرسکتے ہیں، صحیح اعداد ہیں

اگر پارامتر ایک صحیح عدد ہے تو Number.isSafeInteger() طریقہ کار واپس کردار آتا ہے حق.

مثال isSafeInteger()

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

آپ خود کوشش کریں

اعداد صحیح -(2 سے آگے53 -1) تک +(253 تمام اعداد -1) کا。

یہ ایک عدد ہے: 9007199254740991۔ یہ ایک عدد نہیں ہے: 9007199254740992۔