Miklix

გადაიყვანეთ რეალური სიმებიანი ყველა ათობითი დინამიკაში AX 2012

გამოქვეყნებულია: 16 თებერვალი, 2025, 10:47:04 UTC

ამ სტატიაში მე ავუხსენი, თუ როგორ უნდა გადაიყვანოთ მცურავი წერტილის ნომერი სტრიქონად, ხოლო Dynamics AX 2012- ში ყველა ათობითი შენარჩუნებისას, X++ კოდის მაგალითის ჩათვლით.


ეს გვერდი მანქანურად ითარგმნა ინგლისურიდან, რათა რაც შეიძლება მეტი ადამიანისთვის ხელმისაწვდომი ყოფილიყო. სამწუხაროდ, მანქანური თარგმანი ჯერ კიდევ არ არის სრულყოფილი ტექნოლოგია, ამიტომ შეიძლება მოხდეს შეცდომები. თუ გსურთ, შეგიძლიათ ნახოთ ორიგინალური ინგლისური ვერსია აქ:

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

ამ პოსტში ინფორმაცია Dynamics AX 2012 R3-ს ეფუძნება. ეს შეიძლება იყოს ან არ იყოს მოქმედი სხვა ვერსიებისთვის.

ყოველ ჯერზე, მე უნდა გადავიტანო რეალური რიცხვი სტრიქონად. ჩვეულებრივ, უბრალოდ მისი გადაცემა strFmt() საკმარისია, მაგრამ ეს ფუნქცია ყოველთვის ტრიალებს ორ ათწილადამდე, რაც ყოველთვის არ არის ის, რაც მე მინდა.

შემდეგ არსებობს num2str () ფუნქცია, რომელიც კარგად მუშაობს, მაგრამ მოითხოვს, რომ წინასწარ იცოდეთ რამდენი ათობითი და პერსონაჟი გსურთ.

რა მოხდება, თუ გსურთ რიცხვი გადაკეთდეს სტრიქონად, ყველა ციფრით და ათობითით? რატომღაც, ეს არის ის, რაც ყოველთვის მე მაქვს Googling, რადგან გასაკვირია ბუნდოვანი ამის გაკეთება და მე ამას ისე იშვიათად ვაკეთებ, რომ ჩვეულებრივ არ მახსოვს ზუსტად როგორ - პროგრამირების ენების უმეტესობაში, მე ველოდები, რომ თქვენ შეგიძლიათ უბრალოდ დააფიქსიროთ რეალური ცარიელი სტრიქონი, მაგრამ X++ ამას არ უჭერს მხარს.

ყოველ შემთხვევაში, ბევრად უფრო მარტივი გზა, რაც მე აღმოვაჩინე ამის გაკეთება, არის .NET ზარის გამოყენებით. აქ ასევე არსებობს მრავალი ვარიანტი, მოწინავე ფორმატირების ვარიანტებით და მის გარეშე, მაგრამ თუ გსურთ რეალური სტრიქონის მართლაც მარტივი კონვერტაცია, ეს საკმარისი იქნება:

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

თუ ეს კოდი უნდა ჩატარდეს AOS- ზე (მაგალითად, სურათების სამუშაოში), გახსოვდეთ, რომ პირველ რიგში დაამტკიცეთ საჭირო კოდის წვდომის ნებართვა. ამ შემთხვევაში თქვენ დაგჭირდებათ ClrInterop ტიპის InteropPermission დარეკვა .NET კოდი, ასე რომ, კოდის სრული მაგალითი ასე გამოიყურება:

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

გაითვალისწინეთ, რომ ეს მარტივი სისტემა:: კონვერტაციის ფუნქცია იყენებს სისტემის ამჟამინდელ ლოკას ათობითი წერტილის პერსონაჟთან მიმართებაში. ეს შეიძლება არ იყოს თქვენთვის პრობლემა, მაგრამ ჩემთვის, ვინც ცხოვრობს იმ ადგილას, სადაც მძიმით გამოიყენება და არა პერიოდები, როგორც ათობითი გამყოფი, მას შეიძლება დასჭირდეს შემდგომი დამუშავება, თუ მაგალითად, სტრიქონი უნდა იქნას გამოყენებული ფაილში, რომელიც უნდა იკითხება სხვა სისტემების მიერ.

გააზიარე Bluesky-ზეგააზიარეთ Facebook-ზეგააზიარეთ LinkedIn-ზეგააზიარეთ Tumblr-ზეგააზიარეთ X-ზეგააზიარეთ LinkedIn-ზეPinterest-ზე დამაგრება

მიკელ ბანგ კრისტენსენი

ავტორის შესახებ

მიკელ ბანგ კრისტენსენი
მაიკლ არის miklix.com-ის შემქმნელი და მფლობელი. მას აქვს 20 წელზე მეტი გამოცდილება, როგორც პროფესიონალი კომპიუტერული პროგრამისტი/პროგრამული უზრუნველყოფის შემქმნელი და ამჟამად მუშაობს სრულ განაკვეთზე დიდ ევროპულ IT კორპორაციაში. როდესაც ბლოგს არ წერს, თავისუფალ დროს ატარებს ინტერესების, ჰობიებისა და აქტივობების უზარმაზარ სპექტრზე, რაც შეიძლება გარკვეულწილად აისახოს ამ ვებსაიტზე გაშუქებულ თემებზე.