Python round()-funksjon med EKSEMPLER
โก Smart oppsummering
Python round() er en innebygd funksjon som returnerer en flyttalls- eller heltallsverdi avrundet til et spesifisert antall desimaler, ved hjelp av bankers avrunding for รฅ bryte bรฅnd mot nรฆrmeste partall.

Hva er round()-funksjonen i Python?
Python round() er en innebygd funksjon tilgjengelig med PythonDen vil returnere deg et flyttall som vil bli avrundet til desimalene som er gitt som input.
Hvis desimalplassene som skal avrundes ikke er spesifisert, regnes det som 0, og det vil avrundes til nรฆrmeste heltall.
syntax
round(float_num, num_of_decimals)
Parametre
- flyttall: Flyttallet som skal avrundes.
- antall_desimaler: (valgfritt) Antall desimaler som skal tas i betraktning ved avrunding. Dette er valgfritt, og hvis ikke spesifisert, settes standardverdien til 0, og avrundingen gjรธres til nรฆrmeste heltall.
Tekniske beskrivelser
round()-metoden tar to argumenter:
- tallet som skal avrundes, og
- desimalene den bรธr vurdere ved avrunding.
Det andre argumentet er valgfritt og har som standard 0 nรฅr det ikke er spesifisert, og i slike tilfeller vil det runde av til nรฆrmeste heltall, og returtypen vil ogsรฅ vรฆre et heltall.
Nรฅr desimalplassene, dvs. det andre argumentet, er tilstede, vil det avrundes til antall oppgitte plasser. Returtypen vil vรฆre en float.
Hvis tallet etter desimalen som er oppgitt er:
- >= 5, sรฅ vil + 1 bli lagt til den endelige verdien.
- < 5, sรฅ vil den endelige verdien returneres som den er, opptil de nevnte desimalene.
Returverdi
Den vil returnere en heltallsverdi hvis num_of_decimals ikke er oppgitt, og en flyttallsverdi hvis num_of_decimals er oppgitt. Vรฆr oppmerksom pรฅ at verdien vil bli avrundet til +1 hvis verdien etter desimaltegnet er >= 5, ellers vil den returnere verdien som den er, opp til de nevnte desimalene.
Hvor stor innvirkning kan avrunding ha? (Avrunding vs trunkering)
Det beste eksemplet pรฅ รฅ vise effekten av avrunding er bรธrsmarkedet. Tidligere, dvs. i รฅr 1982, Vancouver bรธrs (VSE) brukes til รฅ avkorte aksjeverdiene til tre desimaler pรฅ hver handel.
Det ble gjort nesten 3000 ganger hver dag. De akkumulerte avkortningene fรธrte til et tap pรฅ rundt 25 poeng per mรฅned.
Et eksempel pรฅ avkorting av verdiene kontra avrunding er vist nedenfor.
Tenk pรฅ flyttallene som genereres nedenfor som standardverdier. Akkurat nรฅ genererer jeg dem for et omrรฅde pรฅ 1 000 000 sekunder mellom 0.01 og 0.05.
Eksempler:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
For รฅ vise effekten av avrunding har jeg skrevet et lite kodestykke der du fรธrst bruker tallene opptil bare 3 desimaler, dvs. avkorter tallet etter 3 desimaler.
Jeg har den opprinnelige totalverdien, totalen som kommer fra de avkortede verdiene, og differansen mellom den opprinnelige og den avkortede verdien.
Pรฅ det samme settet med tall har jeg brukt round()-metoden opptil 3 desimaler og beregnet summen og differansen mellom den opprinnelige verdien og den avrundede verdien.
Her er eksemplet og resultatet.
Eksempel 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)
Utgang:
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
Forskjellen mellom den opprinnelige og den avkortede verdien er 499.9016193868665, og fra round() er den 0.04661938686695066.
Forskjellen ser ut til รฅ vรฆre veldig stor, og eksemplet viser hvordan round()-metoden bidrar til รฅ beregne tilnรฆrmet nรธyaktighet.
Eksempel: Rounding Float Numbers
I dette programmet skal vi se hvordan avrunding fungerer pรฅ flytende tall.
# 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))
Utgang:
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
Eksempel: Avrunding av heltallsverdier
Hvis du tilfeldigvis bruker round() pรฅ en heltallsverdi, vil den bare returnere tallet tilbake uten endringer.
# testing round() on a integer num = 15 print("The output is", round(num))
Utgang:
The output is 15
Eksempel: Avrunding pรฅ negativ Numbers
La oss se pรฅ noen eksempler pรฅ hvordan avrunding fungerer pรฅ negative tall.
# testing round() num = -2.8 num1 = -1.5 print("The value after rounding is", round(num)) print("The value after rounding is", round(num1))
Utgang:
C:\pythontest>python testround.py The value after rounding is -3 The value after rounding is -2
Eksempel: Avrundede NumPy-matriser
Hvordan runder du NumPy arrayer i Python?
For รฅ lรธse dette kan vi bruke NumPy-modulen og bruke numpy.round()- eller numpy.around()-metoden, som vist i eksemplet nedenfor.
Bruker numpy.round()
# 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)
Utgang:
C:\pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12]
Vi kan ogsรฅ bruke numpy.around(), som gir deg samme resultat som numpy.round() vist ovenfor.
Eksempel: Desimalmodul
I tillegg til round()-funksjonen, Python har en desimalmodul som hjelper med รฅ hรฅndtere desimaltall mer nรธyaktig.
Desimalmodulen leveres med avrundingstyper, som vist nedenfor:
- RUNDT_TAK: den vil runde mot uendelig.
- AVRUND_NED: den vil runde verdien mot null.
- RUND_ETASJE: den vil runde mot -uendeligheten.
- RUND_HALV_NED: Den vil runde av til nรฆrmeste verdi mot null.
- RUND_HALV_PARTY: den vil runde av til nรฆrmeste verdi og gรฅ videre til nรฆrmeste partall.
- RUND_HALV_OPP: Den vil runde av til nรฆrmeste verdi som gรฅr bort fra null.
- AVRUND OPP: den vil runde av der verdien gรฅr bort fra null.
I desimal hjelper quantize()-metoden รฅ runde av til et fast antall desimaler, og du kan spesifisere avrundingen som skal brukes, som vist i eksempelet nedenfor.
Eksempel: Bruke round() og desimalmetoder
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)
Utgang:
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
