Contoh dalam artikel ini menjelaskan penggunaan sederhana kelas BigDecimal di Java. Ini adalah keterampilan yang sangat praktis dalam pemrograman Java. Ini dibagikan kepada semua orang untuk referensi Anda. Analisis penggunaan spesifiknya adalah sebagai berikut:
Secara umum, dalam perhitungan bisnis di Java, kita semua tahu bahwa float dan double tidak dapat digunakan karena tidak dapat melakukan perhitungan yang tepat. Namun, perancang Java menyediakan kelas BigDecimal yang sangat berguna bagi pemrogram, yang dapat memperbaiki kekurangan kelas float dan double yang tidak dapat melakukan penghitungan secara tepat. Kelas BigDecimal terletak di bawah paket kelas java.maths. Pertama mari kita lihat bagaimana membuat objek BigDecimal. Ia memiliki banyak konstruktor. Berikut adalah dua konstruktor yang paling umum digunakan untuk mendemonstrasikan: satu adalah BigDecimal(double val) dan yang lainnya adalah BigDecimal(String str). Tampaknya tidak ada banyak perbedaan di antara keduanya, tetapi seperti yang dijelaskan dalam deskripsi API:
/*Hasil dari konstruktor ini agak tidak dapat diprediksi. Orang mungkin berasumsi bahwa new BigDecimal(.1) sama persis dengan .1, namun sebenarnya sama dengan .100000000000000055511151231257827021181583404541015625. Hal ini terjadi karena .1 tidak dapat direpresentasikan secara persis sebagai a ganda (atau, untuk itu materi, sebagai pecahan biner dengan panjang berhingga). Dengan demikian, nilai panjang yang diteruskan ke konstruktor tidak persis sama dengan 0,1, meskipun demikian tampilannya tetap ada. Sebaliknya, konstruktor (String) dapat diprediksi dengan sempurna. : new BigDecimal(".1") sama persis dengan .1, seperti yang diharapkan. Oleh karena itu, secara umum disarankan agar konstruktor (String) digunakan dibandingkan konstruktor ini.*/Artinya, konstruktor yang menggunakan double sebagai parameter tidak dapat membuat objek BigDecimal secara akurat. Anda perlu menentukan lingkungan konteks, yaitu menentukan bit yang tepat. Konstruktor yang menggunakan objek String sebagai parameter dapat membuat objek BigDecimal secara akurat. Silakan lihat kode di bawah ini:
import java.math.*;kelas publik TestBigDecimal { public static void main(String args[]){ BigDecimal bd = new BigDecimal("10.123"); BigDecimal bd1 = new BigDecimal(10.123); "/n"+ bd1); }}Output setelah dijalankan:
10.123
10.1229999999999993320898283855058252811431884765625
Oleh karena itu, ketika kita memilih konstruktor, itu tergantung pada kebutuhan spesifiknya.
Selain itu, banyak orang akan bertanya bagaimana cara mengkonversi tipe dasar, seperti int, float, double, long, dan BigDecimal objek ke dan dari satu sama lain. Sangat sederhana:
Tipe dasar diubah menjadi objek BigDecimal yang sesuai melalui konstruktor, dan kelas BigDecimal menyediakan metode seperti intValue(), floatValue(), doubleValue(), dan longValue() untuk mengonversi objek BigDecimal menjadi nilai yang sesuai.
Mengenai cara penghitungan BigDecimal, saya mengambil postingan pertanyaan seseorang di forum sebagai contoh untuk menuliskan secara singkat cara penghitungan BigDecimal. Topiknya adalah: Li Bai sedang berjalan di jalan tanpa insiden, membawa pot untuk membeli anggur. Ketika Anda menemukan sebuah toko, Anda menggandakan jumlahnya, ketika Anda melihat bunga, Anda minum satu dou. Ketika Anda bertemu bunga dan sebuah toko, Anda meminum semua anggur di dalam panci. Berapa banyak dua kali anggur yang ada di pot Li Bai ?
Pertanyaan ini harus didorong ke depan dari belakang ke depan, dan perhitungannya harus dibalik, dan akhirnya volume wine asli dapat diperoleh.
import java.math.*;public class Libai { public static void main(String args[]){ BigDecimal volumn = new BigDecimal("0"); for (int i=0; i<5; i++){ volumn = volumen .add(Desimal Besar baru("1")); volume = volume.divide(Desimal Besar baru("2")); Sistem.keluar.cetak(volume);Hasil berjalan:
0,96875
Saya harap penjelasan artikel ini dapat bermanfaat bagi pembelajaran pemrograman Java semua orang.