Cara Membulatkan Angka dengan Python (Fungsi Round() & Desimal)
Pelajari cara membulatkan angka floating-point dengan Python. Pahami pembulatan Banker, presisi desimal khusus, dan format float untuk tampilan.
Ikhtisar
Aritmatika titik-mengambang di komputer terkadang dapat menyebabkan masalah presisi yang tidak terduga karena cara sistem biner menyimpan desimal (misalnya, `0,1 + 0,2` mengevaluasi ke `0,30000000000000004`). Saat memberikan angka kepada pengguna atau menyiapkan metrik, pembulatan angka adalah persyaratan umum. Python menyediakan beberapa cara untuk mencapai hal ini.
Alat utama adalah fungsi `bulat(angka, ndigit)` bawaan. Dibutuhkan angka dan penghitungan presisi opsional. Jika `ndigits` dihilangkan, maka akan dibulatkan ke bilangan bulat terdekat. Jika `ndigit` diberikan, maka akan dibulatkan ke angka desimal tersebut.
Properti utama dari fungsi `round()` Python adalah ia menggunakan "Pembulatan Bankir" (pembulatan setengah ke genap). Ketika suatu angka berada tepat di tengah-tengah antara dua bilangan bulat (misalnya, `2,5` atau `3,5`), Python akan membulatkannya ke angka *genap* terdekat. Artinya `bulat(2.5)` adalah `2`, dan `bulat(3.5)` adalah `4`. Meskipun secara matematis adil untuk kumpulan data yang besar untuk mencegah bias ke atas, untuk perhitungan keuangan yang tepat Anda harus menggunakan alat kuantisasi modul `desimal`.
Kode & Output Eksekusi
Skrip ini mendemonstrasikan pembulatan float menggunakan fungsi putaran bawaan, contoh pembulatan Banker, dan modul desimal.
from decimal import Decimal, ROUND_HALF_UP
val = 3.14159
# 1. Round to nearest integer
print("Nearest Integer:", round(val))
# 2. Round to 2 decimal places
print("Two decimals:", round(val, 2))
# 3. Banker's Rounding demonstration (rounds to nearest even)
print("round(2.5):", round(2.5)) # Nearest even is 2
print("round(3.5):", round(3.5)) # Nearest even is 4
# 4. Math rounding up (Traditional rounding) using decimal module
amount = Decimal("2.5")
rounded_up = amount.quantize(Decimal("1"), rounding=ROUND_HALF_UP)
print("Decimal ROUND_HALF_UP (2.5):", rounded_up)Nearest Integer: 3
Two decimals: 3.14
round(2.5): 2
round(3.5): 4
Decimal ROUND_HALF_UP (2.5): 3Implementasi Langkah demi Langkah
- Panggil fungsi round(number) bawaan untuk membulatkan float ke bilangan bulat terdekat.
- Berikan argumen kedua (misalnya, round(num, 2)) untuk menentukan jumlah tempat desimal yang ingin disimpan.
- Gunakan modul desimal dengan ROUND_HALF_UP untuk penghitungan pembulatan keuangan yang ketat.
Pertanyaan yang Sering Diajukan
Mengapa round(2.5) mengembalikan 2 bukannya 3 dengan Python?
Python menggunakan pembulatan Banker, yang membulatkan setengah angka ke bilangan bulat genap terdekat. Hal ini mengurangi bias statistik (pembulatan ke atas setengah angka selalu menyebabkan sedikit penyimpangan ke atas pada kumpulan data yang besar).
Bagaimana cara membulatkan suatu bilangan selalu ke atas atau selalu ke bawah?
Impor modul matematika dan gunakan math.ceil(x) untuk membulatkan ke atas ke bilangan bulat berikutnya, atau math.floor(x) untuk membulatkan ke bawah ke bilangan bulat sebelumnya.
Topik Terkait
Pelajari teknik pemformatan string terbaik dengan Python. Bandingkan f-string modern, format(), dan format persentase dengan contoh kode.
Cara Mengonversi String ke Int dengan PythonPelajari cara mengonversi string menjadi bilangan bulat dengan Python menggunakan fungsi int(). Tangani kesalahan dengan aman dan konversikan angka dari biner, oktal, atau hex.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Variabel Python & Tipe Data Dijelaskan
Memahami variabel Python dan tipe data inti (string, integer, float, boolean). Panduan pemula lengkap untuk penugasan memori dengan Python.
Lembar
Pelajari metode kamus Python. Panduan referensi lengkap untuk penyisipan, pengambilan, pembaruan, dan pemeriksaan pasangan nilai kunci.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.