המר ריאל למחרוזת עם כל הספרות העשרוניות ב- Dynamics AX 2012
פורסם: 16 בפברואר 2025 בשעה 10:41:20 UTC
עודכן לאחרונה: 12 בינואר 2026 בשעה 8:52:34 UTC
במאמר זה, אני מסביר כיצד להמיר מספר נקודה צפה למחרוזת תוך שמירה על כל המספרים העשרוניים ב-Dynamics AX 2012, כולל דוגמה לקוד X++.
Convert a Real to String with All Decimals in Dynamics AX 2012
המידע בפוסט זה מבוסס על Dynamics AX 2012 R3. ייתכן שהוא תקף עבור גרסאות אחרות, וייתכן שלא.
מדי פעם אני צריך להמיר מספר ממשי למחרוזת. בדרך כלל, מספיק להעביר אותו ל-strFmt(), אבל הפונקציה הזו תמיד מעגלת לשתי ספרות עשרוניות, וזה לא תמיד מה שאני רוצה.
לאחר מכן יש את הפונקציה num2str(), שאכן עובדת היטב, אך דורשת שתדעו מראש כמה ספרות עשרוניות ותווים אתם רוצים.
מה אם אתה רק רוצה שהמספר יומר למחרוזת, עם כל הספרות והמספרים העשרוניים? מסיבה כלשהי, זה משהו שתמיד גורם לי לחפש בגוגל כי זה באופן מפתיע מעורפל לעשות ואני עושה את זה כל כך לעתים רחוקות שאני בדרך כלל לא זוכר בדיוק איך - ברוב שפות התכנות, הייתי מצפה שאפשר פשוט לשרשר את המספר הממשי למחרוזת ריקה, אבל X++ לא תומך בזה.
בכל מקרה, הדרך הקלה ביותר שמצאתי לעשות זאת היא באמצעות קריאה ל-.NET. ישנן גם כאן מספר אפשרויות, עם ובלי אפשרויות לעיצוב מתקדם, אבל אם אתם רוצים רק המרה פשוטה של מספר אמיתי למחרוזת, זה יספיק:
אם קוד זה אמור להיות מופעל על גבי מערכת ההפעלה (AOS) (לדוגמה, בעבודת אצווה), זכרו לאשר תחילה את הרשאת גישת הקוד הנדרשת. במקרה זה תזדקקו ל-InteropPermission מסוג ClrInterop כדי לקרוא לקוד .NET, כך שדוגמת הקוד המלאה תיראה בערך כך:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
שימו לב שפונקציית System::Convert הפשוטה הזו משתמשת בלוקליזציה הנוכחית של המערכת ביחס לתו הנקודה העשרונית. ייתכן שזו לא בעיה עבורכם, אבל עבורי, שגר באזור שבו משתמשים בפסיק ולא בנקודה כמפריד עשרוני, ייתכן שהיא דורשת עיבוד נוסף אם המחרוזת, למשל, צריכה לשמש בקובץ שחייב להיות קריא על ידי מערכות אחרות.
קריאה נוספת
אם נהניתם מהפוסט הזה, אולי תאהבו גם את ההצעות הבאות:
- קריאה לשירותי מסמכים של AIF ישירות מ-X++ ב- Dynamics AX 2012
- עיצוב מחרוזות עם מאקרו ו-strFmt ב- Dynamics AX 2012
- כיצד לחזור על האלמנטים של Enum מקוד X++ ב- Dynamics AX 2012
