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++.


Halaman ini diterjemahkan oleh mesin dari bahasa Inggris agar dapat diakses oleh sebanyak mungkin orang. Sayangnya, terjemahan mesin belum merupakan teknologi yang sempurna, sehingga kesalahan dapat terjadi. Jika Anda mau, Anda dapat melihat versi bahasa Inggris aslinya di sini:

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:

stringValue = System.Convert::ToString(realValue);

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:

new InteropPermission(InteropKind::ClrInterop).assert();
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:


Bagikan di BlueskyBagikan di FacebookBagikan di LinkedInBagikan di TumblrBagikan di XPin di PinterestBagikan di Reddit

Mikkel Christensen

Tentang Penulis

Mikkel Christensen
Mikkel adalah pencipta dan pemilik miklix.com. Dia memiliki lebih dari 20 tahun pengalaman sebagai pemrogram komputer profesional/pengembang perangkat lunak dan saat ini bekerja penuh waktu di sebuah perusahaan IT besar di Eropa. Ketika tidak menulis blog, ia menghabiskan waktu luangnya untuk beragam minat, hobi, dan kegiatan, yang mungkin sampai batas tertentu tercermin dalam berbagai topik yang dibahas di situs web ini.