გადაიყვანეთ რეალური სიმებიანი ყველა ათობითი დინამიკაში AX 2012
გამოქვეყნებულია: 16 თებერვალი, 2025, 10:47:04 UTC
ბოლო განახლება: 12 იანვარი, 2026, 08:52:45 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 გამოძახების გამოყენებაა. აქაც მრავალი ვარიანტია, გაფართოებული ფორმატირების ვარიანტებით და მათ გარეშე, მაგრამ თუ გსურთ რეალური რიცხვის სტრიქონად ძალიან მარტივი კონვერტაცია, ეს საკმარისი იქნება:
თუ ეს კოდი AOS-ზე უნდა გაუშვათ (მაგალითად, პაკეტურ სამუშაოში), არ დაგავიწყდეთ ჯერ კოდზე წვდომის საჭირო ნებართვის მოთხოვნა. ამ შემთხვევაში, .NET კოდის გამოსაძახებლად დაგჭირდებათ ClrInterop ტიპის InteropPermission, ამიტომ სრული კოდის მაგალითი დაახლოებით ასე გამოიყურება:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
გაითვალისწინეთ, რომ ეს მარტივი System::Convert ფუნქცია იყენებს სისტემის მიმდინარე ლოკალს ათწილადის სიმბოლოსთან მიმართებაში. შესაძლოა ეს თქვენთვის პრობლემა არ იყოს, მაგრამ ჩემთვის, ვინც ისეთ ადგილას ვცხოვრობ, სადაც ათწილადის გამყოფად წერტილის ნაცვლად მძიმე გამოიყენება, შესაძლოა დამატებითი დამუშავება დასჭირდეს, თუ, მაგალითად, სტრიქონი უნდა იქნას გამოყენებული ფაილში, რომლის წაკითხვაც სხვა სისტემების მიერ უნდა იყოს შესაძლებელი.
დამატებითი საკითხავი
თუ ეს პოსტი მოგეწონათ, შეიძლება ეს რჩევებიც მოგეწონოთ:
- მოთხოვნის გამოყენება SysOperation მონაცემთა კონტრაქტის კლასში Dynamics AX 2012-ში
- როგორ გავამეოროთ Enum ელემენტები X++ კოდიდან Dynamics AX 2012-ში
- შეცდომა "მონაცემთა კონტრაქტის ობიექტისთვის განსაზღვრული მეტამონაცემების კლასი არ არის" Dynamics AX 2012-ში
