Pembulatan dan Skala
Kendalikan presisi dan mode pembulatan
Pembulatan dan Skala adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Scale dan Precision
Setiap BigDecimal memiliki scale, yaitu jumlah digit di sebelah kanan titik desimal. Nilai 12.340 memiliki scale sebesar 3. Mengendalikan scale memungkinkan Anda menampilkan uang dengan tepat dua angka desimal.
Memeriksa Scale
Panggil scale() untuk melihat jumlah tempat desimal yang dimiliki suatu nilai, dan precision() untuk melihat jumlah total digit pentingnya.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("12.340");
System.out.println(v.scale());
System.out.println(v.precision());
}
}setScale untuk Menetapkan Desimal
setScale memaksa suatu nilai menggunakan jumlah tempat desimal yang dipilih. Anda harus meneruskan RoundingMode jika pembulatan diperlukan.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("12.3456");
System.out.println(v.setScale(2, RoundingMode.HALF_UP));
}
}Pembulatan ke Terdekat, Modus Umum
RoundingMode.HALF_UP membulatkan ke nilai terdekat, dan jika berada tepat di tengah, pembulatan dilakukan menjauhi nol. Inilah pembulatan sehari-hari yang dipelajari di sekolah.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
System.out.println(new BigDecimal("2.5").setScale(0, RoundingMode.HALF_UP));
System.out.println(new BigDecimal("3.5").setScale(0, RoundingMode.HALF_UP));
}
}Pembulatan ke Genap, Pembulatan Perbankan
HALF_EVEN membulatkan nilai yang tepat di tengah menuju digit genap terdekat. Cara ini mengurangi bias setelah banyak pembulatan, sehingga disukai oleh bank.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
System.out.println(new BigDecimal("2.5").setScale(0, RoundingMode.HALF_EVEN));
System.out.println(new BigDecimal("3.5").setScale(0, RoundingMode.HALF_EVEN));
}
}CEILING dan FLOOR
CEILING selalu membulatkan menuju tak terhingga positif, sedangkan FLOOR selalu membulatkan menuju tak terhingga negatif, terlepas dari digit yang dihilangkan.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("2.1");
System.out.println(v.setScale(0, RoundingMode.CEILING));
System.out.println(v.setScale(0, RoundingMode.FLOOR));
}
}DOWN dan UP
DOWN memotong menuju nol, sedangkan UP selalu membulatkan menjauhi nol. DOWN adalah pemotongan sederhana.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("2.9");
System.out.println(v.setScale(0, RoundingMode.DOWN));
System.out.println(v.setScale(0, RoundingMode.UP));
}
}Pembulatan Selama Pembagian
Pembagian dapat menghasilkan desimal tanpa akhir, jadi Anda memberikan scale dan modus pembulatan langsung dalam pemanggilan divide.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal bill = new BigDecimal("100.00");
BigDecimal people = new BigDecimal("3");
System.out.println(bill.divide(people, 2, RoundingMode.HALF_UP));
}
}Menghapus Nol di Belakang
stripTrailingZeros menghapus nol tambahan. Gabungkan dengan toPlainString untuk menghindari notasi ilmiah pada keluaran.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal v = new BigDecimal("12.300");
System.out.println(v.stripTrailingZeros().toPlainString());
}
}Memformat Uang
Untuk tampilan, tetapkan scale ke 2 dengan HALF_UP agar harga selalu menampilkan dua tempat desimal, termasuk jumlah bulat.
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal amount = new BigDecimal("7");
System.out.println(amount.setScale(2, RoundingMode.HALF_UP));
}
}Memilih Modus
Pilih HALF_UP untuk pembulatan biasa yang dilihat pengguna dan HALF_EVEN untuk akuntansi guna mengurangi bias kumulatif. Selalu nyatakan modus agar kode Anda tidak pernah menimbulkan kesalahan pada hasil yang tidak berhingga.
Pemeriksaan Singkat
Uji pengetahuan Anda tentang scale dan pembulatan.
Ringkasan
Anda telah mempelajari cara mengendalikan precision:
- Scale adalah jumlah digit setelah titik desimal
setScalemenetapkan tempat desimal dan memerlukanRoundingModeHALF_UPadalah pembulatan sehari-hari, sedangkanHALF_EVENadalah pembulatan perbankanCEILING,FLOOR,UP, danDOWNmencakup pembulatan berdasarkan arah- Selalu tentukan modus untuk pembagian agar terhindar dari pengecualian
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pembulatan dan Skala” gratis?
Ya — teks lengkap “Pembulatan dan Skala” 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 “Pembulatan dan Skala”?
Kendalikan presisi dan mode pembulatan 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 3 dari 4.
Berapa lama pelajaran “Pembulatan dan Skala” 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