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.

Coba Solusi ini di Editor

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.

round_numbers.py
Coba di Editor
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)
Keluaran Terminal
Nearest Integer: 3
Two decimals: 3.14
round(2.5): 2
round(3.5): 4
Decimal ROUND_HALF_UP (2.5): 3

Implementasi 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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.