0Pricing
Java Academy · Pelajaran

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, dan multiply
  • divide membutuhkan scale dan RoundingMode untuk hasil yang tidak berhingga
  • Bandingkan dengan compareTo, bukan equals

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

  1. Mengapa Bukan double untuk Uang
  2. Bekerja dengan BigDecimal
  3. Pembulatan dan Skala
  4. BigInteger untuk Bilangan Besar
← Kembali ke Java Academy