Python Fungsi round() dengan CONTOH
โก Ringkasan Cerdas
Python Fungsi `round()` adalah fungsi bawaan yang mengembalikan nilai floating-point atau integer yang dibulatkan ke sejumlah tempat desimal tertentu, menggunakan pembulatan bankir untuk memecah kesamaan angka ke angka genap terdekat.

Apa fungsi round() itu? Python?
Python round() adalah fungsi bawaan yang tersedia di PythonFungsi ini akan mengembalikan angka float yang dibulatkan ke jumlah tempat desimal yang diberikan sebagai input.
Jika tempat desimal yang akan dibulatkan tidak ditentukan, maka dianggap sebagai 0, dan akan dibulatkan ke bilangan bulat terdekat.
Sintaksis
round(float_num, num_of_decimals)
Parameter Teknis
- float_num: Angka desimal yang akan dibulatkan.
- jumlah_desimal: (Opsional) Jumlah desimal yang akan dipertimbangkan saat pembulatan. Ini opsional, dan jika tidak ditentukan, nilai defaultnya adalah 0, dan pembulatan dilakukan ke bilangan bulat terdekat.
Deskripsi
Metode round() menerima dua argumen:
- angka yang akan dibulatkan, dan
- tempat desimal yang harus dipertimbangkan saat pembulatan.
Argumen kedua bersifat opsional dan secara default bernilai 0 jika tidak ditentukan, dan dalam kasus tersebut, nilai akan dibulatkan ke bilangan bulat terdekat, dan tipe kembaliannya juga akan berupa bilangan bulat.
Jika ada tempat desimal, yaitu argumen kedua, maka argumen tersebut akan dibulatkan ke jumlah tempat yang diberikan. Tipe pengembaliannya adalah float.
Jika angka setelah tanda desimal yang diberikan adalah:
- Jika >= 5, maka +1 akan ditambahkan ke nilai akhir.
- < 5, maka nilai akhir akan dikembalikan apa adanya, hingga angka desimal yang disebutkan.
Nilai kembali
Fungsi ini akan mengembalikan nilai integer jika num_of_decimals tidak diberikan dan nilai float jika num_of_decimals diberikan. Harap dicatat bahwa nilai akan dibulatkan ke +1 jika nilai setelah titik desimal >= 5, jika tidak, nilai akan dikembalikan apa adanya, hingga jumlah tempat desimal yang disebutkan.
Seberapa Besar Dampak Pembulatan? (Pembulatan vs Pemotongan)
Contoh terbaik untuk menunjukkan dampak pembulatan adalah pasar bursa saham. Di masa lalu, yaitu pada tahun 1982, Bursa Efek Vancouver (VSE) dulu membulatkan nilai saham hingga tiga angka desimal pada setiap transaksi.
Hal itu dilakukan hampir 3000 kali setiap hari. Pemotongan yang terakumulasi menyebabkan kerugian sekitar 25 poin per bulan.
Contoh pemotongan nilai versus pembulatan ditunjukkan di bawah.
Anggaplah angka floating-point yang dihasilkan di bawah ini sebagai nilai stok. Saat ini, saya menghasilkan angka-angka tersebut untuk rentang 1,000,000 detik antara 0.01 dan 0.05.
contoh:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
Untuk menunjukkan dampak pembulatan, saya telah menulis sepotong kode kecil di mana, pada awalnya, Anda hanya menggunakan angka hingga 3 tempat desimal, yaitu memotong angka setelah 3 tempat desimal.
Saya memiliki nilai total asli, total yang berasal dari nilai yang dipotong, dan selisih antara nilai asli dan nilai yang dipotong.
Pada kumpulan angka yang sama, saya telah menggunakan metode round() hingga 3 angka desimal dan menghitung jumlah serta selisih antara nilai asli dan nilai yang dibulatkan.
Berikut contoh dan hasilnya.
Contoh 1
import random def truncate(num): return int(num * 1000) / 1000 arr = [random.uniform(0.01, 0.05) for _ in range(1000000)] sum_num = 0 sum_truncate = 0 for i in arr: sum_num = sum_num + i sum_truncate = truncate(sum_truncate + i) print("Testing by using truncating upto 3 decimal places") print("The original sum is = ", sum_num) print("The total using truncate = ", sum_truncate) print("The difference from original - truncate = ", sum_num - sum_truncate) print("\n\n") print("Testing by using round() upto 3 decimal places") sum_num1 = 0 sum_truncate1 = 0 for i in arr: sum_num1 = sum_num1 + i sum_truncate1 = round(sum_truncate1 + i, 3) print("The original sum is =", sum_num1) print("The total using round = ", sum_truncate1) print("The difference from original - round =", sum_num1 - sum_truncate1)
Keluaran:
Testing by using truncating upto 3 decimal places The original sum is = 29985.958619386867 The total using truncate = 29486.057 The difference from original - truncate = 499.9016193868665 Testing by using round() up to 3 decimal places The original sum is = 29985.958619386867 The total using round = 29985.912 The difference from original - round = 0.04661938686695066
Selisih antara nilai asli dan nilai yang dipotong adalah 499.9016193868665, dan dari fungsi round(), selisihnya adalah 0.04661938686695066.
Perbedaannya tampak sangat besar, dan contoh tersebut menunjukkan bagaimana metode round() membantu dalam menghitung mendekati akurasi.
Contoh : Pelampung Pembulatan Numbers
Dalam program ini, kita akan melihat bagaimana pembulatan bekerja pada bilangan floating point.
# testing round() float_num1 = 10.60 # here the value will be rounded to 11 as after the decimal point the number is 6 that is >5 float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5 float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5 float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5 print("The rounded value without num_of_decimals is :", round(float_num1)) print("The rounded value without num_of_decimals is :", round(float_num2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num3, 2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num4, 2))
Keluaran:
The rounded value without num_of_decimals is : 11 The rounded value without num_of_decimals is : 10 The rounded value with num_of_decimals as 2 is : 10.35 The rounded value with num_of_decimals as 2 is : 10.34
Contoh: Pembulatan Nilai Integer
Jika Anda menggunakan round() pada nilai integer, itu hanya akan mengembalikan nomor tersebut kepada Anda tanpa perubahan apa pun.
# testing round() on a integer num = 15 print("The output is", round(num))
Keluaran:
The output is 15
Contoh: Pembulatan ke Negatif Numbers
Mari kita lihat beberapa contoh bagaimana pembulatan bekerja pada angka negatif.
# testing round() num = -2.8 num1 = -1.5 print("The value after rounding is", round(num)) print("The value after rounding is", round(num1))
Keluaran:
C:\pythontest>python testround.py The value after rounding is -3 The value after rounding is -2
Contoh: Membulatkan Array NumPy
Bagaimana cara membulatkan di NumPy? susunan dalam Python?
Untuk mengatasi hal ini, kita dapat menggunakan modul NumPy dan menggunakan metode numpy.round() atau numpy.around(), seperti yang ditunjukkan pada contoh di bawah ini.
Menggunakan numpy.bulat()
# testing round() import numpy as np arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323] arr1 = np.round(arr, 2) print(arr1)
Keluaran:
C:\pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12]
Kita juga bisa menggunakan numpy.around(), yang memberikan hasil yang sama dengan numpy.round() yang ditunjukkan di atas.
Contoh: Modul Desimal
Selain fungsi round(), Python memiliki modul desimal yang membantu dalam menangani angka desimal dengan lebih akurat.
Modul Desimal dilengkapi dengan tipe pembulatan, seperti yang ditunjukkan di bawah ini:
- PLAFON BULAT: Ini akan membulat menuju tak terhingga.
- PEMBULATAN KE BAWAH: Nilai tersebut akan dibulatkan ke arah nol.
- LANTAI_BUNDAR: Ini akan membulat ke arah -tak terhingga.
- PEMBULATAN_SETENGAH_TURUN: Nilai tersebut akan dibulatkan ke nilai terdekat yang mendekati nol.
- SETENGAH GENAP: Nilai tersebut akan dibulatkan ke nilai terdekat yang dibulatkan ke bilangan bulat genap terdekat.
- PUTARAN_SETENGAH_KE ATAS: Nilai tersebut akan dibulatkan ke nilai terdekat yang menjauh dari nol.
- RINGKASAN: Ini akan dibulatkan ke titik di mana nilainya akan menjauh dari nol.
Dalam desimal, metode quantize() membantu membulatkan ke sejumlah tempat desimal yang tetap, dan Anda dapat menentukan pembulatan yang akan digunakan, seperti yang ditunjukkan pada contoh di bawah.
Contoh: Menggunakan metode round() dan desimal
import decimal round_num = 15.456 final_val = round(round_num, 2) #Using decimal module final_val1 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_CEILING) final_val2 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_DOWN) final_val3 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_FLOOR) final_val4 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_DOWN) final_val5 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_EVEN) final_val6 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP) final_val7 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_UP) print("Using round()", final_val) print("Using Decimal - ROUND_CEILING ",final_val1) print("Using Decimal - ROUND_DOWN ",final_val2) print("Using Decimal - ROUND_FLOOR ",final_val3) print("Using Decimal - ROUND_HALF_DOWN ",final_val4) print("Using Decimal - ROUND_HALF_EVEN ",final_val5) print("Using Decimal - ROUND_HALF_UP ",final_val6) print("Using Decimal - ROUND_UP ",final_val7)
Keluaran:
Using round() 15.46 Using Decimal - ROUND_CEILING 15.46 Using Decimal - ROUND_DOWN 15.45 Using Decimal - ROUND_FLOOR 15.45 Using Decimal - ROUND_HALF_DOWN 15.46 Using Decimal - ROUND_HALF_EVEN 15.46 Using Decimal - ROUND_HALF_UP 15.46 Using Decimal - ROUND_UP 15.46
