Python fungsi round() dengan CONTOH

Bulat()

Round() adalah fungsi bawaan yang tersedia dengan python. Ini akan mengembalikan Anda nomor float yang akan dibulatkan ke tempat desimal yang diberikan sebagai masukan.

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)

Parameters

  • float_num: angka float yang akan dibulatkan.
  • num_of_decimals: (opsional) Jumlah desimal yang akan dipertimbangkan saat pembulatan. Ini opsional, dan jika tidak ditentukan, nilainya akan menjadi 0, dan pembulatan dilakukan ke bilangan bulat terdekat.

Description

Metode round() membutuhkan dua argumen

  • angka yang akan dibulatkan dan
  • tempat desimal yang harus dipertimbangkan saat pembulatan.

Argumen kedua bersifat opsional dan bernilai default 0 jika tidak ditentukan, dan dalam kasus tersebut, akan dibulatkan ke bilangan bulat terdekat, dan tipe pengembalian 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 tempat desimal diberikan

  • >=5 dari +1 akan ditambahkan ke nilai akhir
  • <5 maka nilai akhir akan dikembalikan sesuai dengan angka 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 perhatikan bahwa nilai akan dibulatkan menjadi +1 jika nilai setelah koma desimal >=5, jika tidak maka nilai akan dikembalikan sesuai dengan angka desimal yang disebutkan.

Seberapa Besar Dampak Pembulatan? (Pembulatan vs Pemotongan)

Contoh terbaik untuk menunjukkan dampak pembulatan adalah pada pasar bursa saham. Dahulu yakni pada tahun 1982, pihak Bursa Efek Vancouver (VSE): digunakan untuk memotong nilai saham hingga tiga desimal pada setiap perdagangan.

Itu dilakukan hampir 3000 kali setiap hari. Akumulasi pemotongan menyebabkan hilangnya sekitar 25 poin per bulan.

Contoh pemotongan nilai versus pembulatan ditunjukkan di bawah.

Pertimbangkan angka floating-point yang dihasilkan di bawah ini sebagai nilai saham. Saat ini saya sedang membuatnya untuk berbagai macam

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 kecil kode yang pertama-tama Anda perlu menggunakan angka hingga 3 desimal saja, yaitu memotong angka setelah 3 desimal.

Saya memiliki nilai total asli, total yang berasal dari nilai terpotong dan selisih antara nilai asli dan 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 outputnya
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 asli dan setelah dipotong adalah 499.9016193868665, dan dari bulat adalah 0.04661938686695066

Perbedaannya nampaknya sangat besar, dan contoh menunjukkan bagaimana metode round() membantu dalam menghitung mendekati akurasi.

Contoh : Pelampung Pembulatan Numbers

Pada program ini kita akan melihat cara 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 >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 cara kerja pembulatan pada bilangan 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: Array Numpy Bulat

Cara membulatkan numpy array dengan python?

Untuk mengatasinya, 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 seperti yang ditunjukkan pada contoh di bawah.

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:

  • ROUND_CEILING: akan membulat menuju tak terhingga,
  • ROUND_DOWN: akan membulatkan nilai menuju nol,
  • ROUND_FLOOR: akan membulat menuju -Infinity,
  • ROUND_HALF_DOWN: akan dibulatkan ke nilai terdekat yang mendekati nol,
  • ROUND_HALF_EVEN: akan dibulatkan ke bilangan bulat genap terdekat,
  • ROUND_HALF_UP: akan dibulatkan ke yang terdekat dengan nilai yang menjauh dari nol
  • ROUND_UP: akan membulat dimana 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

Kesimpulan

  • 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: angka float yang akan dibulatkan.
  • Num_of_decimals: Ini adalah jumlah desimal yang harus diperhatikan saat pembulatan.
  • Ini akan mengembalikan nilai integer jika num_of_decimals tidak diberikan dan nilai float jika num_of_decimals diberikan.