Mengonversi Bilangan Riil ke String dengan Semua Desimal di Dynamics AX 2012
Diterbitkan: 16 Februari 2025 pukul 10.40.33 UTC
Dalam artikel ini, saya menjelaskan cara mengonversi angka floating point menjadi string dengan tetap mempertahankan semua desimal di Dynamics AX 2012, termasuk contoh kode X++.
Convert a Real to String with All Decimals in Dynamics AX 2012
Informasi dalam posting ini berdasarkan Dynamics AX 2012 R3. Informasi ini mungkin berlaku atau tidak berlaku untuk versi lain.
Sesekali, saya perlu mengonversi angka riil menjadi string. Biasanya, cukup dengan meneruskannya ke strFmt(), tetapi fungsi itu selalu membulatkan ke dua desimal, yang tidak selalu saya inginkan.
Lalu ada fungsi num2str(), yang berfungsi dengan baik, tetapi mengharuskan Anda mengetahui terlebih dahulu berapa banyak desimal dan karakter yang Anda inginkan.
Bagaimana jika Anda hanya ingin angka diubah menjadi string, dengan semua digit dan desimal? Entah mengapa, ini adalah sesuatu yang selalu membuat saya mencari di Google karena sangat sulit dilakukan dan saya sangat jarang melakukannya sehingga saya biasanya tidak dapat mengingat dengan tepat caranya - dalam kebanyakan bahasa pemrograman, saya berharap Anda dapat menggabungkan angka riil ke string kosong, tetapi X++ tidak mendukungnya.
Bagaimanapun, cara termudah yang saya temukan untuk melakukan ini adalah dengan menggunakan panggilan .NET. Ada beberapa pilihan di sini juga, dengan dan tanpa pilihan untuk pemformatan tingkat lanjut, tetapi jika Anda hanya menginginkan konversi yang sangat sederhana dari bilangan real ke string, ini sudah cukup:
Jika kode ini akan dijalankan pada AOS (misalnya dalam pekerjaan batch), ingatlah untuk menegaskan izin akses kode yang diperlukan terlebih dahulu. Dalam kasus ini, Anda memerlukan InteropPermission bertipe ClrInterop untuk memanggil kode .NET, jadi contoh kode lengkapnya akan terlihat seperti ini:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Perlu diketahui bahwa fungsi System::Convert sederhana ini menggunakan lokal sistem saat ini sehubungan dengan karakter titik desimal. Ini mungkin bukan masalah bagi Anda, tetapi bagi saya yang tinggal di daerah yang menggunakan koma sebagai pemisah desimal, alih-alih titik, mungkin diperlukan pemrosesan lebih lanjut jika string misalnya perlu digunakan dalam file yang harus dapat dibaca oleh sistem lain.