Mengonversi Bilangan Riil ke String dengan Semua Desimal di Dynamics AX 2012
Diterbitkan: 16 Februari 2025 pukul 10.40.33 UTC
Terakhir diperbarui: 12 Januari 2026 pukul 08.50.49 UTC
Pada artikel ini, saya menjelaskan cara mengkonversi bilangan floating point ke string sambil mempertahankan semua angka 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 didasarkan pada Dynamics AX 2012 R3. Informasi ini mungkin berlaku atau mungkin tidak berlaku untuk versi lain.
Sesekali, saya perlu mengubah bilangan riil menjadi string. Biasanya, cukup dengan meneruskannya ke strFmt() sudah cukup, tetapi fungsi tersebut selalu membulatkan ke dua desimal, yang tidak selalu sesuai dengan keinginan saya.
Kemudian ada fungsi num2str(), yang memang bekerja dengan baik, tetapi mengharuskan Anda mengetahui terlebih dahulu berapa banyak angka desimal dan karakter yang Anda inginkan.
Bagaimana jika Anda hanya ingin angka tersebut dikonversi menjadi string, dengan semua digit dan desimalnya? Entah mengapa, ini selalu membuat saya mencari di Google karena cara melakukannya ternyata sangat tidak umum dan saya sangat jarang melakukannya sehingga biasanya saya tidak ingat persis caranya - di sebagian besar bahasa pemrograman, saya kira Anda bisa langsung menggabungkan angka sebenarnya dengan string kosong, tetapi X++ tidak mendukung hal itu.
Pokoknya, cara termudah yang saya temukan untuk melakukan ini adalah dengan menggunakan panggilan .NET. Ada beberapa pilihan di sini juga, dengan dan tanpa opsi untuk pemformatan tingkat lanjut, tetapi jika Anda hanya menginginkan konversi sederhana dari bilangan riil ke string, ini sudah cukup:
Jika kode ini akan dijalankan di AOS (misalnya dalam pekerjaan batch), ingatlah untuk terlebih dahulu menegaskan izin akses kode yang diperlukan. Dalam hal ini, Anda memerlukan InteropPermission bertipe ClrInterop untuk memanggil kode .NET, sehingga contoh kode lengkapnya akan terlihat seperti ini:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Perlu diingat bahwa fungsi System::Convert sederhana ini menggunakan pengaturan lokal sistem saat ini terkait dengan karakter titik desimal. Ini mungkin bukan masalah bagi Anda, tetapi bagi saya yang tinggal di daerah di mana koma digunakan sebagai pemisah desimal, bukan titik, mungkin diperlukan pemrosesan lebih lanjut jika string tersebut misalnya perlu digunakan dalam file yang harus dapat dibaca oleh sistem lain.
Bacaan Lebih Lanjut
Jika Anda menikmati postingan ini, Anda mungkin juga menyukai saran berikut:
- Menggunakan Kerangka Kerja SysExtension untuk Menemukan Subkelas Mana yang Akan Dibuat Instansi di Dynamics AX 2012
- Kesalahan "Tidak ada kelas metadata yang ditentukan untuk objek kontrak data" di Dynamics AX 2012
- Memanggil Layanan Dokumen AIF Langsung dari X++ di Dynamics AX 2012
