Bulat()
Round () adalah fungsi bawaan yang tersedia dengan python. Ini akan mengembalikan Anda angka float yang akan dibulatkan ke tempat desimal yang diberikan sebagai input.
Jika tempat desimal yang akan dibulatkan tidak ditentukan, itu dianggap sebagai 0, dan akan dibulatkan ke bilangan bulat terdekat.
Dalam Tutorial Python ini, Anda akan belajar:
- Bulat()
- Sintaksis:
- Seberapa Besar Dampak Pembulatan? (Pembulatan vs Pemotongan)
- Contoh: Pembulatan Angka Float
- Contoh: Rounding Integer Values
- Contoh: Pembulatan Angka Negatif
- Contoh: Array Numpy Bulat
- Contoh: Modul Desimal
Sintaksis:
round(float_num, num_of_decimals)
Parameter
- float_num: nomor float yang akan dibulatkan.
- num_of_decimals: (opsional) Jumlah desimal yang akan dipertimbangkan saat pembulatan. Ini opsional, dan jika tidak ditentukan, defaultnya adalah 0, dan pembulatan dilakukan ke bilangan bulat terdekat.
Deskripsi
Metode round () membutuhkan dua argumen
- nomor yang akan dibulatkan dan
- tempat desimal yang harus dipertimbangkan saat pembulatan.
Argumen kedua adalah opsional dan default ke 0 jika tidak ditentukan, dan dalam kasus seperti itu, ini akan dibulatkan ke bilangan bulat terdekat, dan tipe kembalian juga akan menjadi bilangan bulat.
Ketika tempat desimal, yaitu argumen kedua, ada, itu akan dibulatkan ke jumlah tempat yang diberikan. Jenis pengembalian akan menjadi pelampung.
Jika angka setelah tempat desimal diberikan
- > = 5 dari + 1 akan ditambahkan ke nilai akhir
- <5 dari nilai akhir akan kembali karena terserah tempat desimal yang disebutkan.
Nilai kembali
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 menjadi +1 jika nilai setelah koma desimal adalah> = 5 selain itu akan mengembalikan nilai seperti terserah tempat desimal yang disebutkan.
Seberapa Besar Dampak Pembulatan? (Pembulatan vs Pemotongan)
Contoh terbaik untuk menunjukkan dampak pembulatan adalah untuk pasar bursa. Di masa lalu yaitu pada tahun 1982, Bursa Efek Vancouver (VSE): digunakan untuk memotong nilai saham menjadi tiga tempat desimal pada setiap perdagangan.
Itu dilakukan hampir 3000 kali setiap hari. Pemotongan yang terakumulasi menyebabkan hilangnya sekitar 25 poin per bulan.
Contoh pemotongan nilai versus pembulatan ditampilkan di bawah ini.
Pertimbangkan angka floating-point yang dihasilkan di bawah ini sebagai nilai saham. Sekarang saya membuatnya untuk berbagai
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 sebuah kode kecil di mana pada awalnya, Anda hanya perlu menggunakan angka hingga hanya 3 tempat desimal, yaitu memotong angka setelah 3 tempat desimal.
Saya memiliki nilai total asli, total berasal dari nilai terpotong dan perbedaan antara nilai asli dan nilai terpotong.
Pada kumpulan angka yang sama, saya telah menggunakan metode round () hingga 3 tempat desimal dan menghitung jumlah dan selisih antara nilai asli dan nilai yang dibulatkan.
Berikut contoh dan hasilnya
Contoh 1
import randomdef truncate(num):return int(num * 1000) / 1000arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]sum_num = 0sum_truncate = 0for i in arr:sum_num = sum_num + isum_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 = 0sum_truncate1 = 0for i in arr:sum_num1 = sum_num1 + isum_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 placesThe original sum is = 29985.958619386867The total using truncate = 29486.057The difference from original - truncate = 499.9016193868665Testing by using round() up to 3 decimal placesThe original sum is = 29985.958619386867The total using round = 29985.912The difference from original - round = 0.04661938686695066
Selisih antara asli dan setelah pemotongan adalah 499.9016193868665, dan dari putaran 0.04661938686695066
Perbedaannya tampaknya sangat besar, dan contoh menunjukkan bagaimana metode round () membantu dalam menghitung mendekati akurasi.
Contoh: Pembulatan Angka Float
Dalam program ini, kita akan melihat bagaimana pembulatan kata pada bilangan mengambang
# 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 >5float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5print("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 : 11The rounded value without num_of_decimals is : 10The rounded value with num_of_decimals as 2 is : 10.35The rounded value with num_of_decimals as 2 is : 10.34
Contoh: Rounding Integer Values
Jika Anda kebetulan menggunakan round () pada nilai integer, itu hanya akan mengembalikan Anda nomor kembali tanpa perubahan apa pun.
# testing round() on a integernum = 15print("The output is", round(num))
Keluaran:
The output is 15
Contoh: Pembulatan Angka Negatif
Mari kita lihat beberapa contoh cara kerja pembulatan pada bilangan negatif
# testing round()num = -2.8num1 = -1.5print("The value after rounding is", round(num))print("The value after rounding is", round(num1))
Keluaran:
C:\pythontest>python testround.pyThe value after rounding is -3The value after rounding is -2
Contoh: Array Numpy Bulat
Bagaimana cara membulatkan array numpy dengan python?
Untuk mengatasi ini, kita dapat menggunakan modul numpy dan menggunakan metode numpy.round () atau numpy.around (), seperti yang ditunjukkan pada contoh di bawah ini.
Menggunakan numpy.round ()
# testing round()import numpy as nparr = [-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 memberi Anda hasil yang sama seperti yang ditunjukkan pada contoh di bawah.
Contoh: Modul Desimal
Selain fungsi round (), python memiliki modul desimal yang membantu dalam menangani bilangan desimal dengan lebih akurat.
Modul Desimal hadir dengan tipe pembulatan, seperti yang ditunjukkan di bawah ini:
- ROUND_CEILING: itu akan berputar menuju Infinity,
- ROUND_DOWN: ini akan membulatkan nilai menuju nol,
- ROUND_FLOOR: itu akan membulat menuju -Infinity,
- ROUND_HALF_DOWN: itu akan dibulatkan ke nilai terdekat menuju nol,
- ROUND_HALF_EVEN: ini akan dibulatkan ke terdekat dengan nilai mendekati bilangan bulat genap terdekat,
- ROUND_HALF_UP: ini akan dibulatkan ke terdekat dengan nilai menjauh dari nol
- ROUND_UP: itu akan membulatkan dimana nilainya akan menjauh dari nol.
Dalam desimal, metode quantize () membantu membulatkan ke sejumlah tempat desimal tetap, dan Anda dapat menentukan pembulatan yang akan digunakan, seperti yang ditunjukkan pada contoh di bawah ini.
Contoh:
Menggunakan metode round () dan desimal
import decimalround_num = 15.456final_val = round(round_num, 2)#Using decimal modulefinal_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.46Using Decimal - ROUND_CEILING 15.46Using Decimal - ROUND_DOWN 15.45Using Decimal - ROUND_FLOOR 15.45Using Decimal - ROUND_HALF_DOWN 15.46Using Decimal - ROUND_HALF_EVEN 15.46Using Decimal - ROUND_HALF_UP 15.46Using Decimal - ROUND_UP 15.46
Ringkasan:
- Round (float_num, Num_of_decimals) adalah fungsi bawaan yang tersedia dengan python. Ini akan mengembalikan Anda angka float yang akan dibulatkan ke tempat desimal yang diberikan sebagai input.
- float_num: nomor float yang akan dibulatkan.
- Num_of_decimals: Ini adalah jumlah desimal yang akan dipertimbangkan saat pembulatan.
- Ini akan mengembalikan nilai integer jika num_of_decimals tidak diberikan dan nilai float jika num_of_decimals diberikan.