Miklix

แปลงค่าจริงเป็นสตริงที่มีทศนิยมทั้งหมดใน Dynamics AX 2012

ที่ตีพิมพ์: 16 กุมภาพันธ์ 2025 เวลา 10 นาฬิกา 41 นาที 13 วินาที UTC
ปรับปรุงล่าสุด : 12 มกราคม 2026 เวลา 8 นาฬิกา 52 นาที 31 วินาที 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 แบบง่ายนี้ใช้ภาษาท้องถิ่นปัจจุบันของระบบในการกำหนดตำแหน่งจุดทศนิยม ซึ่งอาจไม่ใช่ปัญหาสำหรับคุณ แต่สำหรับผมซึ่งอาศัยอยู่ในพื้นที่ที่ใช้เครื่องหมายจุลภาคแทนจุดเป็นตัวคั่นทศนิยม อาจต้องมีการประมวลผลเพิ่มเติมหากสตริงนั้นจำเป็นต้องใช้ในไฟล์ที่ระบบอื่นต้องอ่านได้

อ่านเพิ่มเติม

หากคุณชอบโพสต์นี้ คุณอาจชอบคำแนะนำเหล่านี้ด้วย:


แชร์บนบลูสกายแชร์บนเฟสบุ๊คแชร์บน LinkedInแชร์บน Tumblrแชร์บน Xแชร์บน LinkedInปักหมุดบน Pinterest

มิคเคล คริสเตนเซ่น

เกี่ยวกับผู้เขียน

มิคเคล คริสเตนเซ่น
ไมเคิล คือผู้สร้างและเจ้าของเว็บไซต์ miklix.com เขามีประสบการณ์เป็นโปรแกรมเมอร์/นักพัฒนาซอฟต์แวร์คอมพิวเตอร์มืออาชีพมากว่า 20 ปี และปัจจุบันทำงานเต็มเวลาให้กับบริษัทไอทีขนาดใหญ่แห่งหนึ่งในยุโรป เมื่อไม่ได้เขียนบล็อก เขาจะใช้เวลาว่างไปกับความสนใจ งานอดิเรก และกิจกรรมต่างๆ มากมาย ซึ่งในระดับหนึ่งอาจสะท้อนให้เห็นได้จากหัวข้อต่างๆ มากมายที่กล่าวถึงในเว็บไซต์นี้