JavaScript BigInt

JavaScript BigInt: বিশাল সংখ্যার জন্য সমাধান

JavaScript সাধারণভাবে সব সংখ্যা number টাইপে সংরক্ষণ করে, যা 64-bit floating point format (IEEE 754 standard) ব্যবহার করে। এই ফরম্যাটে সর্বোচ্চ নিরাপদ পূর্ণসংখ্যা (Safe Integer) হলো:

9007199254740991 (2⁵³ - 1)

যদি আপনি এর বেশি বা কম পরিসরের পূর্ণসংখ্যা নিয়ে কাজ করতে চান, তাহলে BigInt ব্যবহার করা আবশ্যক। এটি ES2020 (ECMAScript 2020) তে যুক্ত হয়েছে।

BigInt কিভাবে লিখতে হয়?

BigInt তৈরি করার দুটি উপায় রয়েছে:

  • n যুক্ত করে: একটি সংখ্যার শেষে n যুক্ত করলে সেটা BigInt হয়
  • BigInt() ফাংশন: স্ট্রিং বা নাম্বারকে BigInt এ রূপান্তর করতে
let big1 = 123456789012345678901234567890n;
let big2 = BigInt("987654321012345678901234567890");

⚠️ BigInt সংক্রান্ত নিয়মাবলি

  • BigInt শুধুমাত্র পূর্ণসংখ্যা (Integer) হিসেবে ব্যবহারযোগ্য
  • BigInt এবং Number একসাথে গাণিতিক অপারেশনে ব্যবহার করা যায় না
  • BigInt দিয়ে দশমিক সংখ্যা কাজ করে না
  • BigInt মেমোরিতে অনেক বড় সংখ্যা হ্যান্ডেল করতে পারে

কিছু সাধারণ গাণিতিক অপারেশন

let a = 12345678901234567890n;
let b = 9999999999999999999n;

let যোগ = a + b;
let গুণ = a * 2n;
let ভাগ = a / 3n;
let মডুলাস = a % 7n;

console.log(যোগ);
console.log(গুণ);
console.log(ভাগ);
console.log(মডুলাস);

উল্লেখ্য, এখানে আমরা প্রতিটি অপারেশনে BigInt টাইপের সঙ্গেই কাজ করেছি। যদি আপনি Number টাইপের সাথে মিশাতে চান, তাহলে BigInt() বা Number() ব্যবহার করে টাইপ রূপান্তর করতে হবে।

BigInt এবং Number এর মধ্যে রূপান্তর

let num = 500;
let big = BigInt(num);     // Number → BigInt

let small = Number(big);   // BigInt → Number

typeof এবং যাচাইকরণ

typeof অপারেটর ব্যবহার করে আপনি জানতে পারবেন একটি ভেরিয়েবল BigInt কিনা:

console.log(typeof 100n); // "bigint"
console.log(typeof 100);  // "number"

BigInt এবং JSON

দুঃখজনকভাবে, BigInt কে সরাসরি JSON.stringify() দিয়ে কনভার্ট করা যায় না। এটি TypeError ছুঁড়ে দেয়:

let big = 12345678901234567890n;
console.log(JSON.stringify(big)); // ❌ TypeError

সমাধান: স্ট্রিংয়ে রূপান্তর করে JSON এ যোগ করুন।

let big = 12345678901234567890n;
let obj = { value: big.toString() };
console.log(JSON.stringify(obj)); // ✅ {"value":"12345678901234567890"}

তুলনামূলক টেবিল: Number vs BigInt

বৈশিষ্ট্য Number BigInt
সর্বোচ্চ নিরাপদ মান 2⁵³ – 1 (~9 কুইন্টিলিয়ন) অসীমের মতো বড়
দশমিক সমর্থন হ্যাঁ না
JSON সমর্থন হ্যাঁ না (স্ট্রিং রূপান্তর প্রয়োজন)

ব্যবহার কোথায় দরকার?

BigInt সাধারণত তখন ব্যবহার করা হয়, যখন:

  • আপনার অ্যাপ্লিকেশন ক্রিপ্টোকারেন্সি, এনক্রিপশন, বা বিজ্ঞানভিত্তিক গণনার মতো কাজে যুক্ত
  • ব্যাংকিং বা অর্থনৈতিক হিসাব যেখানে বিশাল সংখ্যার নির্ভুলতা প্রয়োজন
  • নির্ভুল large integer ID ব্যবহার করতে চান (যেমন, 64-bit UUID)

উপসংহার

BigInt একটি অত্যন্ত গুরুত্বপূর্ণ ডেটা টাইপ যা JavaScript কে আরও শক্তিশালী করে তুলেছে। যখন আপনার কাজের পরিধি বড় সংখ্যার সাথে যুক্ত, তখন BigInt ছাড়া উপায় নেই। তবে, এর কিছু সীমাবদ্ধতা যেমন দশমিক না থাকা এবং JSON অসামর্থ্য, তা বুঝে ব্যবহার করাই শ্রেয়।

Leave a Reply