سؤال

أنا إحياء هذا السؤال، وجعلها أكثر تحديدا: هل هناك مكتبة .NET Framework تدعم الأرقام مع أرقام تعسفية من الدقة؟

هل كانت مفيدة؟

المحلول

هناك بعض الخيارات هنا.

الخيار الجيد هو W3B.sine., ، أيها Native C # /. Net، ويدعم قيم النقطة العائمة التعسفية.

إذا كنت تعامل فقط مع القيم الصحيحة، Intx. يوفر الدعم للقيم الصحيحة التعسفية الدقة. سيكون الخيار الأكثر نضجا يحتمل أن يكون C # bigint., ، ولكن مرة أخرى، هذا لن يدعم عمليات النقطة العائمة.

نصائح أخرى

هل يمكنك الانتظار ل .NET 4.0؟ هم جلب biginteger مباشرة في الإطار.

من ناحية أخرى، إذا كنت لا تستطيع الانتظار، ثم يتضمن وقت التشغيل J # دعم مدمج ل Java.Math.biginteger وكبير. وبعد هذا يعيد توزيعه تماما مثل بقية الإطار .NET.

يمكنك تجربة الطريقة القديمة ل Mantissa. في الأساس، يمكنك الحصول على عدد صحيح 64 بت لتخزين الرقم ثم عدد صحيح 64 بت لتخزين الأسترال (والذي قد يكون سلبيا). يمكنك إنشاء نوع الكائن الخاص بك وزيادة التحميل للمشغلين الحسابين، لذلك سيتم التعامل معها كرقم واحد. سيتطلب بعض العمل، لكنني أعتقد أنه سيكون خيارك الأفضل.

gnumpdotnet: http://www.emilstefanov.net/projects/gnumpdotnet/

إذا كنت بحاجة إلى نقية .NET فكر في النظر إلى هذا: http://www.codeplex.com/intx/

ربما مدهش، Bailey-Borwein-Plouffe Formula يعطي إجراء تدريجي لحساب الرقم الثنائي أو السداسي عشري التالي من PI دون الحاجة إلى تخزين جميع الأرقام السابقة.

إذا كنت تريد مكتبة سريعة حقا، فحاول:

http://www.emilstefanov.net/projects/gnumpdotnet/

يمكنك استخدام النوع العشري الذي يمنحك 28-29 رقما هاما

تحقق من هذا الرابط http://jsfromhell.com/classes/bignumber إنه رمز Javascript ولكن يمكنك بسهولة تحويله إلى بنفسك بأي لغة أو في C #.

إليك مقالة جيدة حول كيفية تمثيل الأرقام اللانهائية.

http://dobbscodetalk.com/index.php؟option=com_myblog&show=basic-arithmic-with-infinite-integers.html&itemid=29.

حظا سعيدا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top