یکی از ویژگیهای جدید در NET Framework 3.0. فضای نام System.Numeric است که در System.Core.dll وجود دارد. در این namespace جدید فقط یک استراکچر به نام BigInteger وجود دارد. استراکچر BigInteger در واقع بعنوان یک type عددی برای متغیرهایی که عددهای بسیار بزرگ (نجومی) را نگهداری می کنند، بکار می رود. بعنوان یک مثال ساده، برنامه فاکتوریل گیری زیر را در نظر بگیرید. int res = 1; for (int i = 2; i <= n; i++) res *= i; return res; اگر برنامه فوق را اجرا کنید می بینید که بیشتر از !12 را نمی توان محاسبه کرد. چراکه متغیر res از نوع Int32 بوده و گنجایش پذیرش عدد بزرگتر از !12 را ندارد. حال اگر نوع متغیر را به long تغییر دهیم اتفاق زیادی نمی افتد فقط آنکه می توان تا !20 را محاسبه کرد. حال این سؤال پیش می آید که اگر خواسته باشیم فاکتوریل گیری را بر روی اعداد بزرگتری انجام دهیم چه باید کرد؟ جواب این پرسش را تایپ جدید BigInteger داده است. اگر در برنامه فوق نوع متغیر res را به BigInteger تغییر دهیم می توان فاکتوریل اعداد بزرگتری را محاسبه کرد. البته ذکر این نکته نیز مهم است که استفاده از BigInteger سرعت برنامه را کمی کاهش می دهد. پس باید در استفاده از این تایپ جدید جوانب احتیاط را در نظر گرفته و تنها در صورت نیاز مبرم از BigInteger استفاده کنیم.
یکی از ویژگیهای جدید در NET Framework 3.0. فضای نام System.Numeric است که در System.Core.dll وجود دارد. در این namespace جدید فقط یک استراکچر به نام BigInteger وجود دارد.
استراکچر BigInteger در واقع بعنوان یک type عددی برای متغیرهایی که عددهای بسیار بزرگ (نجومی) را نگهداری می کنند، بکار می رود. بعنوان یک مثال ساده، برنامه فاکتوریل گیری زیر را در نظر بگیرید.
int res = 1;
for (int i = 2; i <= n; i++)
res *= i;
return res;
اگر برنامه فوق را اجرا کنید می بینید که بیشتر از !12 را نمی توان محاسبه کرد. چراکه متغیر res از نوع Int32 بوده و گنجایش پذیرش عدد بزرگتر از !12 را ندارد. حال اگر نوع متغیر را به long تغییر دهیم اتفاق زیادی نمی افتد فقط آنکه می توان تا !20 را محاسبه کرد. حال این سؤال پیش می آید که اگر خواسته باشیم فاکتوریل گیری را بر روی اعداد بزرگتری انجام دهیم چه باید کرد؟
جواب این پرسش را تایپ جدید BigInteger داده است. اگر در برنامه فوق نوع متغیر res را به BigInteger تغییر دهیم می توان فاکتوریل اعداد بزرگتری را محاسبه کرد.
البته ذکر این نکته نیز مهم است که استفاده از BigInteger سرعت برنامه را کمی کاهش می دهد. پس باید در استفاده از این تایپ جدید جوانب احتیاط را در نظر گرفته و تنها در صورت نیاز مبرم از BigInteger استفاده کنیم.
5! = 120
300! = 30605712216440636035370461297268629388588804173576999416776741259476533176716867465