Miklix

המר ריאל למחרוזת עם כל הספרות העשרוניות ב- 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. ישנן גם כאן מספר אפשרויות, עם ובלי אפשרויות לעיצוב מתקדם, אבל אם אתם רוצים רק המרה פשוטה של מספר אמיתי למחרוזת, זה יספיק:

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

אם קוד זה אמור להיות מופעל על גבי מערכת ההפעלה (AOS) (לדוגמה, בעבודת אצווה), זכרו לאשר תחילה את הרשאת גישת הקוד הנדרשת. במקרה זה תזדקקו ל-InteropPermission מסוג ClrInterop כדי לקרוא לקוד .NET, כך שדוגמת הקוד המלאה תיראה בערך כך:

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

שימו לב שפונקציית System::Convert הפשוטה הזו משתמשת בלוקליזציה הנוכחית של המערכת ביחס לתו הנקודה העשרונית. ייתכן שזו לא בעיה עבורכם, אבל עבורי, שגר באזור שבו משתמשים בפסיק ולא בנקודה כמפריד עשרוני, ייתכן שהיא דורשת עיבוד נוסף אם המחרוזת, למשל, צריכה לשמש בקובץ שחייב להיות קריא על ידי מערכות אחרות.

קריאה נוספת

אם נהניתם מהפוסט הזה, אולי תאהבו גם את ההצעות הבאות:


שתפו בבלוסקישתפו בפייסבוקשתפו בלינקדאיןשתפו ב-Tumblrשתפו ב-Xשתפו בלינקדאיןהצמד בפינטרסט

מיקל כריסטנסן

על המחבר

מיקל כריסטנסן
מיקל הוא היוצר והבעלים של miklix.com. יש לו למעלה מ-20 שנות ניסיון כמתכנת מחשבים/מפתח תוכנה מקצועי וכיום הוא מועסק במשרה מלאה בתאגיד IT אירופאי גדול. כשהוא לא כותב בלוג, הוא מבלה את זמנו הפנוי במגוון עצום של תחומי עניין, תחביבים ופעילויות, שעשויים לבוא לידי ביטוי במידה מסוימת במגוון הנושאים המכוסים באתר זה.