Float bulat ke 2 tempat desimal python

Tutorial ini akan mendemonstrasikan cara melakukan pembulatan nilai float di Python ke dua desimal terdekat

Menggunakan fungsi bulat()

Bentuk bulat dari nilai yang diminta disediakan oleh fungsi round() , yang mengembalikan nilai floating point dengan jumlah desimal yang diberikan

Karena nilai defaultnya adalah 0 desimal, metode ini akan memberikan bilangan bulat terdekat jika jumlah tempat desimal tidak ditentukan

Sintaksis

Parameter. -

  • angka (wajib)- Angka yang akan dibulatkan
  • digit (opsional)- Hingga berapa desimal angka harus dibulatkan. Nilai default adalah 0

Untuk menyimpan nomor yang diberikan, kami akan mendefinisikan variabel. Metode round() akan membulatkan angka float yang diberikan hingga dua tempat desimal dengan meneruskan angka yang diberikan dan jumlah tempat desimal (2 dalam hal ini) sebagai argumen. Kami akan mencetak hasil pembulatan dari angka titik-mengambang yang diberikan hingga dua desimal

Contoh

Metode round() digunakan dalam program berikut untuk memberikan hasil pembulatan dari nilai floating-point yang disediakan hingga dua desimal

Kode

Keluaran

Rounding 3.3469456 up to two decimal places: 3.35

Menggunakan fungsi format()

Kami akan membuat variabel untuk menampung nomor yang diberikan. Dengan memberikan nomor dan format asli (hingga 2 tempat desimal) sebagai argumen ke metode format() , seseorang dapat membulatkan nilai hingga dua tempat desimal. Ini mengembalikan nomor yang diberikan dalam format yang telah ditentukan oleh penentu format

Contoh

Program berikut akan menggunakan metode format() untuk memberikan bilangan bulat dari nilai titik-mengambang yang diberikan hingga dua desimal

Kode

Keluaran

Rounding 3.3469456 upto 2 decimal places: 3.35
_

Menggunakan Modul Desimal

Modul desimal Python berkontribusi untuk meningkatkan ketepatan nilai floating-point. Kita harus mengimpor modul desimal Python sebelum kita dapat menggunakannya

floatnumber. Desimal(desimal) memberikan titik desimal 50 digit secara default

Di sini, kita dapat membulatkan hingga dua digit tempat desimal dengan menggunakan nilai. kuantisasi (desimal. Desimal ('0. 00'))

Kami akan mengimpor modul desimal Python menggunakan kata kunci impor. Kami akan membuat variabel untuk menyimpan nomor asli. Kami akan menggunakan metode Decimal() dari modul desimal untuk mengonversi nilai floating-point yang disediakan. Angka tersebut harus dibulatkan hingga dua tempat desimal. Oleh karena itu, kami menggunakan nilai. kuantisasi (desimal. Decimal()) fungsi untuk memberikan hanya dua digit (2 nol dalam argumen) setelah titik desimal. Kita akan mendapatkan hasil yang kita inginkan

Contoh

Program berikut menggunakan modul desimal untuk memberikan nilai pembulatan dari nilai floating-point yang disediakan hingga dua desimal

Kode

Keluaran

Rounding 35.67533 upto 2 decimal places:  35.68

Menggunakan fungsi ceil()

Nilai plafon angka tertentu, bilangan bulat terkecil yang lebih besar dari atau sama dengan angka tersebut, dikembalikan oleh fungsi ceil()

Untuk mengimpor modul matematika, gunakan kata kunci impor Python. Untuk menyimpan nilai floating-point yang disediakan, kita akan membuat sebuah variabel. Untuk membulatkan bilangan bulat menjadi dua digit desimal dan menampilkan hasilnya, gunakan fungsi ceil()

Contoh

Metode ceil() digunakan dalam program di bawah ini untuk mengembalikan nilai pembulatan dari nilai floating-point yang disediakan hingga dua desimal

Kode

Keluaran

Rounding 4.83622 upto 2 decimal places: 
4.84

Dalam tutorial ini, kita mempelajari empat cara alternatif untuk membulatkan nilai titik-mengambang yang diberikan di Python hingga dua digit desimal. Kami menemukan cara membulatkan angka menjadi dua titik desimal menggunakan metode ceil dan beberapa penalaran matematis. Kita juga belajar cara mengkuantisasi angka titik-mengambang dengan mengubahnya menjadi desimal menggunakan modul desimal Python

Catatan. Perilaku round()_ untuk pelampung bisa mengejutkan. Pemberitahuan

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

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

# for integers


# for floating point


# even choice
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

Sintaksis

round(float_num, num_of_decimals)

Parameter

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

Keterangan

Metode round() membutuhkan dua argumen

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

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

  • >=5 dari + 1 akan ditambahkan ke nilai akhir
  • <5 than the final value will return as it is up to the decimal places mentioned.

Nilai pengembalian

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 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 stok. Saat ini saya sedang 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 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 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 jika dibulatkan menjadi 0. 04661938686695066

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

Contoh. Membulatkan Angka Float

Pada 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 Integer

Jika 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 Negatif

Mari 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 Bulat

Bagaimana 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 Desimal

Selain 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

  • ROUND_CEILING. itu akan membulat menuju Tak terhingga,
  • ROUND_DOWN. itu akan membulatkan nilai ke nol,
  • ROUND_FLOOR. itu akan membulat menuju -Infinity,
  • ROUND_HALF_DOWN. itu akan membulatkan ke nilai terdekat menuju nol,
  • ROUND_HALF_EVEN. itu akan membulatkan ke terdekat dengan nilai menuju bilangan bulat genap terdekat,
  • ROUND_HALF_UP. itu akan membulatkan ke terdekat dengan nilai menjauh dari nol
  • PEMBULATAN. itu akan membulatkan di mana nilainya akan menjauh dari nol

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 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

Bagaimana Anda mendapatkan float hingga 2 tempat desimal?

format("%. 2f", 1. 23456); Ini akan memformat floating point angka 1. 23456 hingga 2 tempat desimal, karena kami telah menggunakan dua setelah titik desimal dalam memformat instruksi %.

Bagaimana Anda mengitari pelampung dengan Python?

Bulatkan angka float menggunakan fungsi round() . Fungsi akan mengembalikan bilangan bulat terdekat karena nilai default untuk jumlah desimal adalah 0.