Pusingan ()
Round () adalah fungsi bawaan yang tersedia dengan python. Ia akan mengembalikan nombor apungan yang akan dibundarkan ke tempat perpuluhan yang diberikan sebagai input.
Sekiranya tempat perpuluhan yang hendak dibundarkan tidak ditentukan, ia dianggap sebagai 0, dan ia akan bulat ke bilangan bulat terdekat.
Dalam Tutorial Python ini, anda akan belajar:
- Pusingan ()
- Sintaks:
- Berapa banyak kesan yang boleh dilakukan oleh Pembulatan? (Pembundaran vs Pemotongan)
- Contoh: Membundarkan Nombor Float
- Contoh: Membundarkan Nilai Bilangan
- Contoh: Pembundaran pada Nombor Negatif
- Contoh: Susunan Numpy Bulat
- Contoh: Modul Perpuluhan
Sintaks:
round(float_num, num_of_decimals)
Parameter
- float_num: nombor apungan yang hendak dibundarkan.
- num_of_decimals: (pilihan) Bilangan perpuluhan yang perlu dipertimbangkan semasa membundarkan. Ia adalah pilihan, dan jika tidak ditentukan, ia menjadi 0, dan pembundaran dilakukan ke bilangan bulat terdekat.
Penerangan
Kaedah bulat () mengambil dua hujah
- nombor yang hendak dibundarkan dan
- tempat perpuluhan yang harus dipertimbangkan semasa membundarkan.
Argumen kedua adalah opsional dan lalai ke 0 apabila tidak ditentukan, dan dalam hal demikian, ia akan membulatkan ke bilangan bulat terdekat, dan jenis pengembalian juga akan menjadi bilangan bulat.
Apabila tempat perpuluhan, iaitu argumen kedua, hadir, ia akan membulatkan kepada bilangan tempat yang diberikan. Jenis pengembalian akan menjadi pelampung.
Sekiranya nombor selepas perpuluhan diberi
- > = 5 daripada + 1 akan ditambahkan ke nilai akhir
- <5 daripada nilai akhir akan kembali kerana ia hingga tempat perpuluhan yang disebutkan.
Nilai pulangan
Ia akan mengembalikan nilai bilangan bulat jika bilangan_korelasi_dekimel tidak diberikan dan nilai apungan jika angka_defek diberikan. Harap maklum bahawa nilainya akan dibundarkan ke +1 jika nilai setelah titik perpuluhan adalah> = 5 yang lain, ia akan mengembalikan nilainya kerana hingga titik perpuluhan yang disebutkan.
Berapa banyak kesan yang boleh dilakukan oleh Pembulatan? (Pembundaran vs Pemotongan)
Contoh terbaik untuk menunjukkan kesan pembundaran adalah untuk pasaran bursa saham. Pada masa lalu iaitu pada tahun 1982, Bursa Saham Vancouver (VSE): digunakan untuk memangkas nilai saham menjadi tiga tempat perpuluhan pada setiap perdagangan.
Ia dilakukan hampir 3000 kali setiap hari. Pemotongan terkumpul menyebabkan kerugian sekitar 25 mata sebulan.
Contoh pemotongan nilai berbanding pembundaran ditunjukkan di bawah.
Pertimbangkan nombor terapung yang dihasilkan di bawah sebagai nilai saham. Sekarang ini saya menjana untuk pelbagai
1,000,000 saat antara 0,01 dan 0,05.
Contoh:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
Untuk menunjukkan kesan pembundaran, saya telah menulis sebilangan kecil kod di mana pada mulanya, anda perlu menggunakan nombor hingga hanya 3 tempat perpuluhan, iaitu memotong nombor setelah 3 tempat perpuluhan.
Saya mempunyai jumlah nilai asal, jumlah yang berasal dari nilai terpotong dan perbezaan antara nilai asal dan terpotong.
Pada set nombor yang sama, saya telah menggunakan kaedah bulat () hingga 3 tempat perpuluhan dan mengira jumlah dan perbezaan antara nilai asal dan nilai bulat.
Berikut adalah contoh dan outputnya
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)
Pengeluaran:
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
Perbezaan antara asal dan selepas pemotongan adalah 499.9016193868665, dan dari bulat, ia adalah 0.04661938686695066
Perbezaannya nampaknya sangat besar, dan contoh menunjukkan kaedah membundarkan () membantu dalam mengira hampir tepat.
Contoh: Membundarkan Nombor Float
Dalam program ini, kita akan melihat bagaimana membulatkan kata pada angka terapung
# 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))
Pengeluaran:
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: Membundarkan Nilai Bilangan
Sekiranya anda menggunakan pusingan () pada nilai bilangan bulat, ia hanya akan mengembalikan nombor anda tanpa perubahan.
# testing round() on a integernum = 15print("The output is", round(num))
Pengeluaran:
The output is 15
Contoh: Pembundaran pada Nombor Negatif
Mari kita lihat beberapa contoh bagaimana pembundaran berfungsi pada nombor negatif
# testing round()num = -2.8num1 = -1.5print("The value after rounding is", round(num))print("The value after rounding is", round(num1))
Pengeluaran:
C:\pythontest>python testround.pyThe value after rounding is -3The value after rounding is -2
Contoh: Susunan Numpy Bulat
Bagaimana cara membundarkan susunan numpy di ular sawa?
Untuk menyelesaikannya, kita dapat menggunakan modul numpy dan menggunakan kaedah numpy.round () atau numpy.around (), seperti yang ditunjukkan dalam contoh di bawah.
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)
Pengeluaran:
C:\pythontest>python testround.py[-0.34 1.46 4.23 -0.34 7.63 5.12]
Kami juga boleh menggunakan numpy.around (), yang memberikan hasil yang sama seperti yang ditunjukkan dalam contoh di bawah.
Contoh: Modul Perpuluhan
Selain fungsi bulat (), python mempunyai modul perpuluhan yang membantu menangani nombor perpuluhan dengan lebih tepat.
Modul Perpuluhan dilengkapi dengan jenis pembulatan, seperti yang ditunjukkan di bawah:
- ROUND_CEILING: ia akan berpusing menuju Infinity,
- ROUND_DOWN: ia akan membulatkan nilai ke arah sifar,
- ROUND_FLOOR: ia akan berpusing ke arah -Infinity,
- ROUND_HALF_DOWN: ia akan berpusing ke nilai terdekat menuju ke sifar,
- ROUND_HALF_EVEN: ia akan bulat ke terdekat dengan nilai menuju bilangan bulat terdekat,
- ROUND_HALF_UP: ia akan membulatkan ke terdekat dengan nilai pergi dari sifar
- ROUND_UP: ia akan berputar di mana nilainya akan hilang dari sifar.
Dalam perpuluhan, kaedah quantize () membantu membulatkan ke bilangan tempat perpuluhan yang tetap, dan anda boleh menentukan pembundaran yang akan digunakan, seperti yang ditunjukkan dalam contoh di bawah.
Contoh:
Menggunakan kaedah bulat () dan perpuluhan
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)
Pengeluaran:
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 terbina dalam yang tersedia dengan python. Ia akan mengembalikan nombor apungan yang akan dibundarkan ke tempat perpuluhan yang diberikan sebagai input.
- float_num: nombor apungan yang hendak dibundarkan.
- Num_of_decimals: Ini adalah bilangan perpuluhan yang harus dipertimbangkan semasa membundarkan.
- Ia akan mengembalikan nilai bilangan bulat jika bilangan_korelasi_dekimel tidak diberikan dan nilai apungan jika angka_defek diberikan.