Chuyển đổi số thực thành chuỗi với tất cả số thập phân trong Dynamics AX 2012
Đã xuất bản: lúc 10:41:14 UTC 16 tháng 2, 2025
Trong bài viết này, tôi sẽ giải thích cách chuyển đổi số dấu phẩy động thành chuỗi trong khi vẫn giữ nguyên tất cả số thập phân trong Dynamics AX 2012, bao gồm ví dụ về mã X++.
Convert a Real to String with All Decimals in Dynamics AX 2012
Thông tin trong bài đăng này dựa trên Dynamics AX 2012 R3. Thông tin này có thể đúng hoặc không đúng với các phiên bản khác.
Thỉnh thoảng, tôi cần chuyển đổi một số thực thành chuỗi. Thông thường, chỉ cần truyền nó vào strFmt() là đủ, nhưng hàm đó luôn làm tròn thành hai chữ số thập phân, không phải lúc nào cũng là điều tôi muốn.
Sau đó, có hàm num2str(), hoạt động tốt nhưng yêu cầu bạn phải biết trước số lượng chữ số thập phân và ký tự mà bạn muốn.
Còn nếu bạn chỉ muốn số được chuyển đổi thành chuỗi, với tất cả các chữ số và số thập phân thì sao? Vì một lý do nào đó, đây là điều mà tôi luôn phải tìm kiếm trên Google vì nó khá khó hiểu và tôi hiếm khi làm đến mức tôi thường không nhớ chính xác cách thực hiện - trong hầu hết các ngôn ngữ lập trình, tôi mong đợi rằng bạn có thể chỉ cần nối số thực thành một chuỗi rỗng, nhưng X++ không hỗ trợ điều đó.
Dù sao thì, cách dễ nhất mà tôi tìm thấy để thực hiện điều này là sử dụng lệnh gọi .NET. Cũng có nhiều tùy chọn ở đây, có và không có tùy chọn định dạng nâng cao, nhưng nếu bạn chỉ muốn chuyển đổi thực sự đơn giản từ số thực sang chuỗi, thì cách này sẽ đủ:
Nếu mã này được chạy trên AOS (ví dụ trong một tác vụ hàng loạt), hãy nhớ xác nhận quyền truy cập mã cần thiết trước. Trong trường hợp này, bạn sẽ cần InteropPermission loại ClrInterop để gọi mã .NET, vì vậy ví dụ mã đầy đủ sẽ trông giống như thế này:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Xin lưu ý rằng hàm System::Convert đơn giản này sử dụng ngôn ngữ hiện tại của hệ thống liên quan đến ký tự dấu thập phân. Điều này có thể không phải là vấn đề đối với bạn, nhưng đối với tôi, người sống ở khu vực sử dụng dấu phẩy thay vì dấu chấm làm dấu phân cách thập phân, có thể cần xử lý thêm nếu chuỗi ví dụ cần được sử dụng trong tệp mà các hệ thống khác phải đọc được.