Bekerja dengan BigDecimal
Aritmetik perpuluhan tepat
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, danmultiplysecara terus dividememerlukan scale danRoundingModeuntuk hasil yang tidak berkesudahan- Buat perbandingan dengan
compareTo, bukanequals
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
- Mengapa bukan double untuk wang
- Bekerja dengan BigDecimal
- Pembundaran dan skala
- BigInteger untuk nombor besar