Bekerja dengan BigDecimal
Aritmetika desimal yang tepat
Bekerja dengan BigDecimal adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Perhitungan Desimal yang Tepat
BigDecimal dari paket java.math merepresentasikan bilangan desimal dengan presisi yang tidak terbatas dan tanpa kesalahan pembulatan tersembunyi. Ini adalah alat standar untuk perhitungan keuangan.
Membuat BigDecimal
Cara paling aman untuk membuat BigDecimal adalah dari teks. Cara ini mempertahankan digit tepat yang Anda ketik.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal amount = new BigDecimal("42.50");
System.out.println(amount);
}
}Ketidakdapatubahan
BigDecimal bersifat tidak dapat diubah. Operasi seperti add tidak mengubah nilai asli; operasi tersebut mengembalikan BigDecimal baru. Anda harus menyimpan nilai yang dikembalikan.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("10");
a.add(new BigDecimal("5"));
System.out.println(a);
}
}Penjumlahan dan Pengurangan
Gunakan add dan subtract, serta ingat untuk menyimpan hasilnya. Setiap pemanggilan mengembalikan nilai baru.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal price = new BigDecimal("19.99");
BigDecimal tax = new BigDecimal("1.60");
BigDecimal total = price.add(tax);
System.out.println(total);
}
}Perkalian
multiply bekerja seperti yang diharapkan. Perhatikan bahwa scale hasilnya adalah jumlah scale operand-operandnya.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal unit = new BigDecimal("2.50");
BigDecimal qty = new BigDecimal("3");
System.out.println(unit.multiply(qty));
}
}Pembagian Membutuhkan Kehati-hatian
Membagi nilai yang tidak habis dibagi, seperti 1 dengan 3, menghasilkan desimal tak berhingga. divide biasa kemudian menimbulkan ArithmeticException.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal one = new BigDecimal("1");
BigDecimal three = new BigDecimal("3");
try {
System.out.println(one.divide(three));
} catch (ArithmeticException e) {
System.out.println("Need to specify rounding!");
}
}
}Pembagian dengan Pembulatan
Berikan scale dan RoundingMode untuk membagi dengan aman. Di sini kita mempertahankan dua tempat desimal dan membulatkan setengah ke atas.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal one = new BigDecimal("1");
BigDecimal three = new BigDecimal("3");
System.out.println(one.divide(three, 2, RoundingMode.HALF_UP));
}
}Membandingkan Nilai
Gunakan compareTo untuk membandingkan nilai numerik. Jangan gunakan equals, karena equals mempertimbangkan scale, sehingga 2.0 dan 2.00 tidak sama menurut equals, tetapi sama menurut compareTo.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("2.0");
BigDecimal b = new BigDecimal("2.00");
System.out.println(a.equals(b));
System.out.println(a.compareTo(b) == 0);
}
}Konstanta Praktis
BigDecimal menyediakan konstanta siap pakai: BigDecimal.ZERO, BigDecimal.ONE, dan BigDecimal.TEN. Gunakan konstanta tersebut daripada membuatnya sendiri.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal sum = BigDecimal.ZERO;
sum = sum.add(BigDecimal.TEN);
System.out.println(sum);
}
}Menjumlahkan Daftar
Pola yang umum adalah memulai dari BigDecimal.ZERO dan menambahkan setiap nilai dalam perulangan, lalu menyimpan hasilnya setiap kali.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal[] prices = {
new BigDecimal("1.10"),
new BigDecimal("2.20"),
new BigDecimal("3.30")
};
BigDecimal total = BigDecimal.ZERO;
for (BigDecimal p : prices) {
total = total.add(p);
}
System.out.println(total);
}
}Praktik Terbaik
Ingat hal-hal penting berikut: buat dari teks, perlakukan nilai sebagai sesuatu yang tidak dapat diubah, selalu tentukan pembulatan untuk pembagian, dan bandingkan dengan compareTo.
Pemeriksaan Singkat
Uji pengetahuan Anda tentang BigDecimal.
Ringkasan
Anda telah mempelajari cara menggunakan BigDecimal:
- Buat dari teks untuk mendapatkan digit yang tepat
- BigDecimal tidak dapat diubah, jadi simpan hasil setiap operasi
- Gunakan langsung
add,subtract, danmultiply dividemembutuhkan scale danRoundingModeuntuk hasil yang tidak berhingga- Bandingkan dengan
compareTo, bukanequals
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Bekerja dengan BigDecimal” gratis?
Ya — teks lengkap “Bekerja dengan BigDecimal” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Bekerja dengan BigDecimal”?
Aritmetika desimal yang tepat Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Bekerja dengan BigDecimal” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa Bukan double untuk Uang
- Bekerja dengan BigDecimal
- Pembulatan dan Skala
- BigInteger untuk Bilangan Besar