Miklix

تحويل رقم حقيقي إلى سلسلة نصية مع جميع الأرقام العشرية في Dynamics AX 2012

نُشرت: ١٦ فبراير ٢٠٢٥ م في ١٠:٤٠:٢٣ ص UTC

في هذه المقالة، أشرح كيفية تحويل رقم فاصل عائم إلى سلسلة مع الحفاظ على جميع الأعداد العشرية في Dynamics AX 2012، بما في ذلك مثال كود X++.


لقد تمت ترجمة هذه الصفحة آليًا من الإنجليزية بهدف جعلها متاحة لأكبر عدد ممكن من الأشخاص. لسوء الحظ، لم يتم تطوير تقنية الترجمة الآلية بعد، لذا قد تحدث أخطاء. إذا كنت تفضل ذلك، يمكنك عرض النسخة الإنجليزية الأصلية هنا:

Convert a Real to String with All Decimals in Dynamics AX 2012

تعتمد المعلومات الواردة في هذا المنشور على Dynamics AX 2012 R3. وقد تكون صالحة أو غير صالحة للإصدارات الأخرى.

من حين لآخر، أحتاج إلى تحويل رقم حقيقي إلى سلسلة. عادةً، يكفي تمريره إلى strFmt()، لكن هذه الدالة تقرب دائمًا إلى رقمين عشريين، وهو ما لا أريده دائمًا.

ثم هناك وظيفة num2str()، والتي تعمل بشكل جيد، ولكنها تتطلب منك معرفة مسبقًا عدد الأرقام العشرية والأحرف التي تريدها.

ماذا لو أردت فقط تحويل الرقم إلى سلسلة، بكل الأرقام والأرقام العشرية؟ لسبب ما، هذا شيء يجعلني دائمًا أبحث عنه على Google لأنه من الصعب بشكل مدهش القيام به وأنا أفعله نادرًا جدًا لدرجة أنني لا أتذكر عادةً كيف بالضبط - في معظم لغات البرمجة، أتوقع أنه يمكنك ببساطة ربط الرقم الحقيقي بسلسلة فارغة، لكن X++ لا يدعم ذلك.

على أية حال، الطريقة الأسهل التي وجدتها للقيام بذلك هي استخدام استدعاء .NET. هناك خيارات متعددة هنا أيضًا، مع خيارات التنسيق المتقدم وبدونها، ولكن إذا كنت تريد فقط التحويل البسيط حقًا من رقم حقيقي إلى سلسلة، فسوف يكون هذا كافيًا:

stringValue = System.Convert::ToString(realValue);

إذا كان من المقرر تشغيل هذا الكود على AOS (على سبيل المثال في مهمة دفعية)، فتذكر تأكيد إذن الوصول إلى الكود اللازم أولاً. في هذه الحالة، ستحتاج إلى InteropPermission من نوع ClrInterop لاستدعاء كود .NET، لذا فإن مثال الكود الكامل سيبدو كالتالي:

new InteropPermission(InteropKind::ClrInterop).assert();
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();

انتبه إلى أن دالة System::Convert البسيطة هذه تستخدم الإعدادات المحلية الحالية للنظام فيما يتعلق بحرف الفاصلة العشرية. قد لا يمثل هذا مشكلة بالنسبة لك، ولكن بالنسبة لي، الذي أعيش في منطقة تستخدم فيها الفاصلة بدلاً من النقطة كفاصل عشري، فقد يتطلب الأمر معالجة إضافية إذا كان من الضروري استخدام السلسلة على سبيل المثال في ملف يجب أن يكون قابلاً للقراءة بواسطة أنظمة أخرى.

شارك على بلوسكايشارك على الفيسبوكشارك على لينكدإنشارك على تمبلرشارك على إكسشارك على لينكدإنثبت على بينتريست

ميكيل بانج كريستنسن

عن المؤلف

ميكيل بانج كريستنسن
ميكيل هو مؤسس ومالك موقع miklix.com. يتمتع بخبرة تزيد عن 20 عامًا كمبرمج كمبيوتر/مطور برامج محترف ويعمل حاليًا بدوام كامل في إحدى شركات تكنولوجيا المعلومات الأوروبية الكبرى. عندما لا يقوم بالتدوين، يقضي وقت فراغه في مجموعة واسعة من الاهتمامات والهوايات والأنشطة، والتي قد تنعكس إلى حد ما في تنوع الموضوعات التي يغطيها هذا الموقع.