اعداد در جاوا اسکریپت
در جاوا اسکریپت، اعداد به صورت Number
ذخیره میشوند که از فرمت double-precision 64-bit binary format IEEE 754
استفاده میکند. این فرمت میتواند اعداد صحیح تا ۱۵ رقم را بدون خطا نمایش دهد. اما زمانی که تعداد ارقام بیشتر از این مقدار باشد (مانند عدد ۱۷ رقمی)، دقت کاهش مییابد و ممکن است اعداد گرد شوند. این میتواند باعث شود که وقتی عدد ۱۷ رقمی شما با یک عدد ثابت جمع میشود، نتیجه نهایی دقیقاً مطابق انتظار نباشد و مقداری تغییر کند.
برای حفظ دقت در کار با اعداد بزرگ ، میتوانید از کتابخانههایی مانند BigInt
( برای اعداد بزرگ صحیح ) و یا big.js
( برای اعداد بزرگ اعشاری ) استفاده کنید که برای مدیریت اعداد بزرگ و با دقت بالا طراحی شدهاند .
آشنایی با کتابخانه BigInt
کتابخانه BigInt
در جاوا اسکریپت برای کار با اعداد بسیار بزرگ (فراتر از محدوده اعداد معمولی Number
) استفاده میشود. این ویژگی به شما امکان میدهد تا اعداد صحیح با دقت بالاتر از Number
ذخیره و مدیریت کنید.
ساختن BigInt
برای ایجاد یک BigInt
، میتوانید از تابع BigInt()
یا پسوند n
بعد از یک عدد صحیح استفاده کنید.
// استفاده از تابع BigInt let bigNumber1 = BigInt(123456789012345678901234567890); // استفاده از پسوند n let bigNumber2 = 123456789012345678901234567890n;
عملیات با BigInt
BigInt
پشتیبانی از عملیات ریاضی معمولی را فراهم میکند:
let bigNumber1 = 123456789012345678901234567890n; let bigNumber2 = 987654321098765432109876543210n; let sum = bigNumber1 + bigNumber2; // جمع let difference = bigNumber2 - bigNumber1; // تفریق let product = bigNumber1 * bigNumber2; // ضرب let quotient = bigNumber2 / bigNumber1; // تقسیم (به صورت صحیح) let remainder = bigNumber2 % bigNumber1; // باقیمانده
مقایسه BigInt
با Number
به دلیل دقت بالای BigInt
، نمیتوان آن را مستقیماً با Number
مقایسه یا ترکیب کرد. در صورت نیاز به مقایسه یا ترکیب، باید نوعها را تطبیق داد.
let bigNumber = 12345678901234567890n; let number = 10; // مقایسه پس از تبدیل console.log(bigNumber > BigInt(number)); // true // ترکیب پس از تبدیل let combined = bigNumber + BigInt(number); // 12345678901234567900n
تبدیل BigInt
به Number
برای تبدیل BigInt
به Number
، میتوانید از تابع Number()
استفاده کنید. با این حال، اگر عدد بسیار بزرگ باشد، ممکن است دقت از دست برود.
let bigNumber = 12345678901234567890n; let number = Number(bigNumber); console.log(number); // 1.2345678901234567e+19
کتابخانه big.js
کتابخانه big.js
نیز برای کار با اعداد بسیار بزرگ و با دقت بالا در جاوا اسکریپت استفاده میشود، اما با تمرکز بیشتر بر محاسبات دقیق با اعداد اعشاری. در حالی که BigInt
برای اعداد صحیح بزرگ مناسب است، big.js
برای محاسبات دقیق با اعداد اعشاری کاربردیتر است.
نصب و استفاده از big.js
ابتدا باید کتابخانه big.js
را نصب کنید. میتوانید این کار را با استفاده از npm انجام دهید :
npm install big.js
سپس، میتوانید کتابخانه را در کد جاوا اسکریپت خود وارد کنید و از آن برای انجام محاسبات دقیق استفاده کنید :
const Big = require('big.js'); // ساخت یک عدد بزرگ اعشاری let bigDecimal1 = new Big('12345678901234567890.12345678901234567890'); let bigDecimal2 = new Big('98765432109876543210.98765432109876543210'); // انجام محاسبات دقیق let sum = bigDecimal1.plus(bigDecimal2); // جمع let difference = bigDecimal2.minus(bigDecimal1); // تفریق let product = bigDecimal1.times(bigDecimal2); // ضرب let quotient = bigDecimal2.div(bigDecimal1); // تقسیم
مزایای big.js
- دقت بالا:
big.js
دقت بسیار بالایی در محاسبات اعشاری فراهم میکند و از خطاهای گرد کردن جلوگیری میکند. - عملیات ریاضی کامل: این کتابخانه همه عملیاتهای ریاضی معمولی را پشتیبانی میکند.
- سبک و سریع:
big.js
نسبتاً سبک است و کارایی بالایی دارد.
منبع : Microsoft Copilot
متن سوال :
- لطفا در رابطه با اعداد بزرگ در جاوا اسکریپت توضیح بده
- در رابطه با کتابخانه BigInt توضیح بده
- در رابطه با کتابخانه big.js توضیح بده