Python round()-funktio esimerkkeineen
โก รlykรคs yhteenveto
Python round() on sisรครคnrakennettu funktio, joka palauttaa liukuluku- tai kokonaisluvun pyรถristettynรค tiettyyn desimaalien mรครคrรครคn kรคyttรคen pankkiirin pyรถristystรค tasalukujen ratkaisemiseksi lรคhimpรครคn parilliseen numeroon.

Mikรค on round()-funktio funktiossa Python?
Python round() on sisรครคnrakennettu funktio, joka on kรคytettรคvissรค PythonSe palauttaa liukulukun, joka pyรถristetรครคn syรถtteenรค annettujen desimaalien tarkkuudelle.
Jos pyรถristettรคvรครค desimaalipistettรค ei ole mรครคritetty, sen katsotaan olevan 0, ja se pyรถristetรครคn lรคhimpรครคn kokonaislukuun.
Syntaksi
round(float_num, num_of_decimals)
parametrit
- liukuluku: Pyรถristettรคvรค liukuluku.
- desimaalien_mรครคrรค: (valinnainen) Pyรถristyksessรค huomioon otettavien desimaalien lukumรครคrรค. Tรคmรค on valinnainen, ja jos sitรค ei ole mรครคritetty, oletusarvo on 0 ja pyรถristys tehdรครคn lรคhimpรครคn kokonaislukuun.
Tuotetiedot
round()-metodi ottaa vastaan โโkaksi argumenttia:
- pyรถristettรคvรค luku ja
- desimaalit, joita sen tulee ottaa huomioon pyรถristyksen aikana.
Toinen argumentti on valinnainen ja sen oletusarvo on 0, jos sitรค ei ole mรครคritetty. Tรคllaisessa tapauksessa se pyรถristetรครคn lรคhimpรครคn kokonaislukuun ja paluutyyppi on myรถs kokonaisluku.
Kun desimaalit eli toinen argumentti on olemassa, pyรถristetรครคn annettujen paikkojen lukumรครคrรครคn. Palautustyyppi on float.
Jos annetun desimaalipilkun jรคlkeinen luku on:
- >= 5, niin lopulliseen arvoon lisรคtรครคn + 1.
- < 5, niin lopullinen arvo palautetaan sellaisenaan, mainittuihin desimaalien tarkkuudella.
Palautusarvo
Se palauttaa kokonaisluvun, jos desimaalien_mรครคrรครค ei ole annettu, ja liukulukuarvon, jos desimaalien_mรครคrรค on annettu. Huomaa, ettรค arvo pyรถristetรครคn +1:een, jos desimaalipilkun jรคlkeinen arvo on >= 5. Muussa tapauksessa se palauttaa arvon sellaisenaan, mainittuihin desimaalien tarkkuudella.
Kuinka paljon vaikutusta pyรถristyksellรค voi olla? (pyรถristys vs katkaisu)
Paras esimerkki pyรถristรคmisen vaikutuksesta on pรถrssimarkkinat. Aiemmin, eli vuonna 1982, Vancouverin pรถrssi (VSE) kรคytetรครคn osakkeiden arvojen katkaisemiseen kolmen desimaalin tarkkuudella jokaisessa kaupassa.
Se tehtiin lรคhes 3000 kertaa pรคivรคssรค. Kertyneet katkaisut johtivat noin 25 pisteen menetykseen kuukaudessa.
Alla on esimerkki arvojen lyhentรคmisestรค pyรถristykseen verrattuna.
Tarkastellaan alla olevia liukulukuja osakearvoina. Tรคllรค hetkellรค luon niitรค miljoonan sekunnin ajalle vรคlillรค 0.01 ja 0.05.
Esimerkkejรค:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
Pyรถristรคmisen vaikutuksen havainnollistamiseksi olen kirjoittanut pienen koodinpรคtkรคn, jossa aluksi kรคytetรครคn numeroita vain kolmen desimaalin tarkkuudella eli katkaistaan โโluku kolmen desimaalin jรคlkeen.
Minulla on alkuperรคinen kokonaisarvo, katkaistujen arvojen kokonaisarvo sekรค alkuperรคisen ja katkaistun arvon vรคlinen erotus.
Samoille lukujoukoille olen kรคyttรคnyt round()-metodia kolmen desimaalin tarkkuudella ja laskenut alkuperรคisen arvon ja pyรถristettyjen lukujen summan ja erotuksen.
Tรคssรค on esimerkki ja tuloste.
Esimerkki 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)
lรคhtรถ:
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
Alkuperรคisen ja katkaistun arvon vรคlinen erotus on 499.9016193868665, ja round()-funktion perusteella se on 0.04661938686695066.
Ero nรคyttรครค olevan erittรคin suuri, ja esimerkki osoittaa, kuinka round()-metodi auttaa laskemaan lรคhes tarkasti.
Esimerkki: Pyรถristรคvรค kellunta Numbers
Tรคssรค ohjelmassa nรคemme, miten pyรถristรคminen toimii kelluvien lukujen kanssa.
# 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))
lรคhtรถ:
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
Esimerkki: Kokonaislukuarvojen pyรถristys
Jos satut kรคyttรคmรครคn round():ta kokonaislukuarvona, se palauttaa sinulle luvun ilman muutoksia.
# testing round() on a integer num = 15 print("The output is", round(num))
lรคhtรถ:
The output is 15
Esimerkki: Negatiivin pyรถristys Numbers
Katsotaanpa muutamia esimerkkejรค siitรค, miten pyรถristรคminen toimii negatiivisilla luvuilla.
# testing round() num = -2.8 num1 = -1.5 print("The value after rounding is", round(num)) print("The value after rounding is", round(num1))
lรคhtรถ:
C:\pythontest>python testround.py The value after rounding is -3 The value after rounding is -2
Esimerkki: Pyรถreรคt NumPy-taulukot
Miten pyรถristรคt NumPyn taulukot Python?
Ratkaistaksemme tรคmรคn voimme hyรถdyntรครค NumPy-moduulia ja kรคyttรครค numpy.round()- tai numpy.around()-metodia, kuten alla olevassa esimerkissรค on esitetty.
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)
lรคhtรถ:
C:\pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12]
Voimme kรคyttรครค myรถs numpy.around()-funktiota, joka antaa saman tuloksen kuin yllรค esitetty numpy.round().
Esimerkki: Desimaalimoduuli
round()-funktion lisรคksi Python sisรคltรครค desimaalimoduulin, joka auttaa kรคsittelemรครคn desimaalilukuja tarkemmin.
Desimaalimoduuli sisรคltรครค pyรถristystyyppejรค, kuten alla on esitetty:
- PYรREร_KATTO: se pyรถrii kohti รครคrettรถmyyttรค.
- PYรRISTร_ALAS: se pyรถristรครค arvon kohti nollaa.
- PYรREร_KERROS: se pyรถrii kohti -รครคrettรถmyyttรค.
- PUOLIKAS_ALAS: se pyรถristyy lรคhimpรครคn nollaa kohti menevรครคn arvoon.
- PUOLIKAS_PARILLINEN: se pyรถristyy lรคhimpรครคn arvoon ja pyรถristyy lรคhimpรครคn parilliseen kokonaislukuun.
- PYรRISTร_PUOLIKSI_YLรS: se pyรถristyy lรคhimpรครคn nollasta poispรคin olevaan arvoon.
- RATSIA: se pyรถristyy kohdassa, jossa arvo poistuu nollasta.
Desimaalimuodossa quantize()-menetelmรค auttaa pyรถristรคmรครคn kiinteรครคn mรครคrรครคn desimaaleja, ja voit mรครคrittรครค kรคytettรคvรคn pyรถristyksen alla olevan esimerkin mukaisesti.
Esimerkiksi: Pyรถreรค()- ja desimaalimenetelmillรค
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)
lรคhtรถ:
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
