Java Academy · Pelajaran

Bekerja dengan BigDecimal

Aritmetik perpuluhan tepat

Pelajaran 2 daripada 413 langkah

Bekerja dengan BigDecimal ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Pengiraan Perpuluhan Tepat

BigDecimal daripada pakej java.math mewakili nombor perpuluhan dengan precision arbitrari tanpa ralat pembundaran tersembunyi. Ia ialah alat standard untuk pengiraan kewangan.

Mencipta BigDecimal

Cara paling selamat untuk mencipta BigDecimal ialah daripada rentetan. Cara ini mengekalkan digit tepat yang Anda taip.

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal amount = new BigDecimal("42.50");
        System.out.println(amount);
    }
}

Tidak Boleh Diubah

BigDecimal adalah tidak boleh diubah. Operasi seperti add tidak mengubah nilai asal; operasi tersebut mengembalikan BigDecimal baharu. Anda mesti menyimpan nilai yang dikembalikan itu.

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);
    }
}

Penambahan dan Penolakan

Gunakan add dan subtract, serta ingat untuk menyimpan hasilnya. Setiap panggilan mengembalikan nilai baharu.

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);
    }
}

Pendaraban

multiply berfungsi seperti yang dijangkakan. Perhatikan bahawa scale hasil ialah jumlah scale bagi operan.

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));
    }
}

Pembahagian Memerlukan Perhatian

Membahagikan nilai yang tidak habis dibahagi, seperti 1 dengan 3, menghasilkan perpuluhan tidak berkesudahan. divide biasa kemudiannya menghasilkan 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!");
        }
    }
}

Pembahagian dengan Pembundaran

Berikan scale dan RoundingMode untuk membahagi dengan selamat. Di sini kita mengekalkan dua tempat perpuluhan dan membundarkan separuh 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 angka. Jangan gunakan equals, kerana equals mengambil kira scale; oleh itu, 2.0 dan 2.00 tidak sama mengikut equals, tetapi sama mengikut 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);
    }
}

Pemalar Berguna

BigDecimal menyediakan pemalar yang sedia digunakan: BigDecimal.ZERO, BigDecimal.ONE, dan BigDecimal.TEN. Gunakannya dan bukannya mencipta pemalar 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 Senarai

Corak biasa ialah bermula daripada BigDecimal.ZERO dan menambah setiap nilai dalam gelung, sambil 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);
    }
}

Amalan Terbaik

Ingat perkara penting: bina daripada rentetan, anggap nilai sebagai tidak boleh diubah, sentiasa tentukan pembundaran untuk pembahagian, dan bandingkan dengan compareTo.

Semakan Ringkas

Uji pengetahuan Anda tentang BigDecimal.

Imbas Kembali

Anda telah mempelajari cara bekerja dengan BigDecimal:

  • Ciptanya daripada rentetan untuk mendapatkan digit yang tepat
  • Ia tidak boleh diubah, jadi simpan hasil setiap operasi
  • Gunakan add, subtract, dan multiply secara terus
  • divide memerlukan scale dan RoundingMode untuk hasil yang tidak berkesudahan
  • Buat perbandingan dengan compareTo, bukan equals
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
104
Pelajaran
374

Soalan Lazim

Adakah pelajaran “Bekerja dengan BigDecimal” percuma?

Ya — teks penuh “Bekerja dengan BigDecimal” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Bekerja dengan BigDecimal”?

Aritmetik perpuluhan tepat Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Java Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Bekerja dengan BigDecimal” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mengapa bukan double untuk wang
  2. Bekerja dengan BigDecimal
  3. Pembundaran dan skala
  4. BigInteger untuk nombor besar
← Kembali ke Java Academy