Catatan. Perilaku round(number, ndigits)6 memberikan round(number, ndigits)7 bukan round(number, ndigits)8 yang diharapkan. Ini bukan bug. itu adalah hasil dari fakta bahwa sebagian besar pecahan desimal tidak dapat direpresentasikan secara tepat sebagai pelampung Show
Ketika round(number, ndigits)9 desimal diubah menjadi bilangan titik-mengambang biner, angka itu diganti lagi dengan perkiraan biner, yang nilai pastinya adalah 2.67499999999999982236431605997495353221893310546875_ Oleh karena itu, dibulatkan menjadi 2. 67 Jika Anda berada dalam situasi di mana presisi ini diperlukan, pertimbangkan untuk menggunakan modul 0, yang dirancang untuk aritmatika titik-mengambang 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, maka dianggap sebagai 0, dan akan dibulatkan ke bilangan bulat terdekat Dalam Tutorial Python ini, Anda akan belajar Sintaksisround(float_num, num_of_decimals)_ Parameter
KeteranganMetode round() membutuhkan dua argumen
Argumen kedua adalah opsional dan default ke 0 bila tidak ditentukan, dan dalam kasus seperti itu, akan dibulatkan ke bilangan bulat terdekat, dan tipe kembalian juga akan menjadi bilangan bulat Ketika tempat desimal, i. e. argumen kedua, hadir, itu akan dibulatkan ke jumlah tempat yang diberikan. Jenis kembalian akan menjadi pelampung Jika nomor setelah tempat desimal diberikan
Nilai pengembalianIni 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 titik desimal adalah >=5 jika tidak maka akan mengembalikan nilai sesuai dengan tempat desimal yang disebutkan Seberapa Besar Pengaruh Pembulatan?Contoh terbaik untuk menunjukkan dampak pembulatan adalah untuk pasar bursa. Di masa lalu saya. e 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. Akumulasi pemotongan menyebabkan kerugian sekitar 25 poin per bulan Contoh pemotongan nilai versus pembulatan ditunjukkan di bawah ini Pertimbangkan angka floating-point yang dihasilkan di bawah ini sebagai nilai saham. Saat ini saya sedang membuatnya untuk berbagai 1.000.000 detik antara 0. 01 dan 0. 05 Contoharr = [random.uniform(0.01, 0.05) for _ in range(1000000)] Untuk menunjukkan dampak pembulatan, saya telah menulis sepotong kecil kode di mana pada awalnya, Anda hanya perlu menggunakan angka hingga 3 angka desimal, i. e. memotong nomor setelah 3 tempat desimal Saya memiliki nilai total asli, total berasal dari nilai terpotong dan perbedaan antara nilai asli dan terpotong Pada set angka yang sama, saya telah menggunakan metode round() hingga 3 desimal dan menghitung jumlah dan selisih antara nilai asli dan nilai bulat Berikut adalah contoh dan outputnya Contoh 1import 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)_ KeluaranTesting 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 jika dibulatkan menjadi 0. 04661938686695066 Perbedaannya tampaknya sangat besar, dan contoh menunjukkan bagaimana metode round() membantu dalam menghitung mendekati akurasi Contoh. Membulatkan Angka FloatPada program ini, kita akan melihat bagaimana pembulatan kata pada bilangan floating # 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. Membulatkan Nilai IntegerJika Anda kebetulan menggunakan round() pada nilai integer, itu hanya akan mengembalikan nomor Anda kembali tanpa perubahan apa pun # testing round() on a integer num = 15 print("The output is", round(num)) Keluaran The output is 15 Contoh. Pembulatan pada Bilangan NegatifMari kita lihat beberapa contoh bagaimana pembulatan bekerja 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 BulatBagaimana cara membulatkan array numpy dengan python? Untuk mengatasi ini, kita dapat menggunakan modul numpy dan menggunakan numpy. bulat() atau numpy. sekitar() metode, seperti yang ditunjukkan pada contoh di bawah ini Menggunakan numpy. bulat() arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]0 Keluaran arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]1 Kita juga bisa menggunakan numpy. sekitar(), yang memberi Anda hasil yang sama seperti yang ditunjukkan pada contoh di bawah ini Contoh. Modul DesimalSelain fungsi round(), python memiliki modul desimal yang membantu dalam menangani angka desimal dengan lebih akurat Modul Desimal hadir dengan tipe pembulatan, seperti yang ditunjukkan di bawah ini
Dalam desimal, metode quantize() membantu membulatkan ke angka desimal yang tetap, dan Anda dapat menentukan pembulatan yang akan digunakan, seperti yang ditunjukkan pada contoh di bawah ini Bagaimana Anda memotong ke satu tempat desimal dengan Python?Python memiliki dua cara untuk menghapus semua digit desimal dari sebuah angka. . Matematika. fungsi trunc() memotong nilai argumennya menjadi bilangan bulat Fungsi int() mengubah angka atau string menjadi bilangan bulat. Selama proses itu Python membuang bagian desimal dari nilainya Bagaimana Anda memotong ke satu tempat desimal?Untuk memotong angka menjadi 1 tempat desimal, hilangkan semua digit setelah tempat desimal pertama . Untuk memotong angka menjadi 2 tempat desimal, hilangkan semua digit setelah tempat desimal kedua.
Bagaimana Anda membulatkan ke satu tempat desimal dengan Python?Pemrograman Python menawarkan fungsi round() bawaan bawaan yang membulatkan angka ke jumlah digit yang diberikan dan membuat pembulatan angka . Fungsi round() menerima dua argumen numerik, n dan n digit kemudian mengembalikan angka n setelah membulatkannya menjadi digit.
Bagaimana cara saya menggunakan. 2f dengan Python?2f adalah placeholder untuk angka floating point. Jadi %d diganti dengan nilai pertama dari tuple i. e 12 dan %. 2f diganti dengan nilai kedua i. dan 150. 87612.
. Pemformatan String Python |