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.

  • ๐Ÿ”˜ sintaks: round(number, ndigits) menerima nilai yang akan dibulatkan dan jumlah digit opsional yang secara default bernilai nol.
  • โ˜‘๏ธ Tipe pengembalian: Menghilangkan ndigits akan menghasilkan bilangan bulat, sedangkan jika disertakan akan menghasilkan bilangan pecahan.
  • โœ… Pembulatan ala bankir: Nilai tengah dibulatkan ke bilangan genap terdekat, jadi round(2.5) mengembalikan 2.
  • ๐Ÿงช Angka negatif: Pembulatan juga berlaku untuk angka negatif, mengubah -2.8 menjadi -3 dan -1.5 menjadi -2.
  • ๏ธ Alat presisi: Modul decimal dan fungsi round() NumPy menangani pembulatan presisi tetap dan pembulatan array.
  • ๐Ÿค– Alur kerja AI: Kode pembelajaran mesin membulatkan metrik, probabilitas, dan bobot untuk pencatatan dan laporan yang lebih rapi.

Python bulat() Fungsi

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

Pertanyaan Umum Demo Slot

Nomor Python 3 menggunakan pembulatan setengah ke genap (pembulatan bankir) untuk hasil seri, jadi round(0.5) adalah 0, round(2.5) adalah 2, dan round(3.5) adalah 4. Ini mengurangi bias kumulatif.

Karena 2.675 tidak dapat disimpan secara tepat dalam bilangan floating point biner; nilai sebenarnya disimpan sebagai sekitar 2.6749999999999998, sehingga round() membulatkan ke bawah. Untuk hasil yang tepat, gunakan decimal.Decimal('2.675').

Gunakan modul math: math.ceil(x) selalu membulatkan ke atas, math.floor(x) selalu membulatkan ke bawah, dan int(x) membulatkan ke arah nol. Fungsi round() sendiri tidak dapat memaksakan arah tetap.

Berikan argumen kedua yang negatif: round(12345, -1) menghasilkan 12340, round(12345, -2) menghasilkan 12300, dan round(12345, -3) menghasilkan 12000. ndigits negatif membulatkan ke kiri titik desimal.

round(x, 2) mengubah nilai yang digunakan dalam perhitungan selanjutnya, sedangkan f'{x:.2f}' hanya memformat tampilan dan mempertahankan angka aslinya. Gunakan round() untuk perhitungan, dan f-string untuk output.

Nomor Numbers Variabel tersebut bersifat immutable (tidak dapat diubah), sehingga fungsi round() mengembalikan nilai baru tanpa mengubah inputnya. Berikan nilai tersebut, misalnya result = round(3.14159, 2); variabel asli tetap mempertahankan presisi penuh.

Kode pembelajaran mesin membulatkan nilai akurasi, kerugian, dan probabilitas untuk log yang mudah dibaca dan untuk memetakan prediksi ke label kelas. Pertahankan presisi penuh untuk perhitungan gradien dan bulatkan hanya metrik akhir yang ditampilkan.

Ya. Asisten AI seperti GitHub Copilot secara otomatis melengkapi fungsi round(), np.round(), dan pembulatan desimal dari komentar atau nama fungsi, dan alat berbasis agen memfaktorkan ulang pemformatan manual ke dalam panggilan round(), meskipun presisi yang dipilih masih perlu ditinjau.

Ringkaslah postingan ini dengan: