Python round() funktsiooniga EXAMPLES
Round ()
Round() on pythoni sisseehitatud funktsioon. See tagastab teile ujukarvu, mis รผmardatakse sisendiks antud kรผmnendkohtadeni.
Kui รผmardatavaid kรผmnendkohti pole mรครคratud, loetakse see nulliks ja รผmardatakse lรคhima tรคisarvuni.
Sรผntaks
round(float_num, num_of_decimals)
parameetrid
- float_num: ujukarv, mis tuleb รผmardada.
- kรผmnendkohtade_arv: (valikuline) รผmardamisel arvesse vรตetavate kรผmnendkohtade arv. See on valikuline ja kui seda pole mรครคratud, on see vaikimisi 0 ja รผmardatakse lรคhima tรคisarvuni.
Kirjeldus
Round() meetodil on kaks argumenti
- รผmardatav arv ja
- kรผmnendkohad, mida ta peaks รผmardamisel arvestama.
Teine argument on valikuline ja vaikimisi vรครคrtuseks 0, kui seda pole mรครคratud, ning sel juhul รผmardatakse see lรคhima tรคisarvuni ja tagastustรผรผbiks on samuti tรคisarv.
Kui komakohad ehk teine โโargument on olemas, รผmardub see antud kohtade arvuni. Tagastamise tรผรผp on ujuki.
Kui number pรคrast koma on antud
- >=5 kui +1 lisatakse lรตppvรครคrtusele
- <5 kui lรตplik vรครคrtus tagastatakse, kuna see on kuni mainitud kรผmnendkohtadeni.
Tagastusvรครคrtus
See tagastab tรคisarvu, kui kรผmnendkohtade_arv ei ole antud, ja ujuva vรครคrtuse, kui on antud kรผmnendkohtade_arv. Pange tรคhele, et vรครคrtus รผmardatakse +1-ni, kui vรครคrtus pรคrast koma on >=5, vastasel juhul tagastab see vรครคrtuse nimetatud kรผmnendkohtadeni.
Kui palju vรตib รผmardamine mรตjutada? (รmardamine vs kรคrpimine)
Parim nรคide รผmardamise mรตju nรคitamiseks on bรถrsiturg. Minevikus ehk aastal 1982, Vancouveri bรถrs (VSE): kasutatakse aktsiavรครคrtuste kรคrpimiseks iga tehingu puhul kolme kรผmnendkoha tรคpsusega.
Seda tehti iga pรคev ligi 3000 korda. Kogunenud kรคrpimised toovad kaasa umbes 25 punkti kaotuse kuus.
Allpool on nรคide vรครคrtuste kรคrpimisest รผmardamise suhtes.
Vรตtke allpool genereeritud ujukoma numbrid aktsiavรครคrtustena. Praegu genereerin seda paljude jaoks
1,000,000 0.01 0.05 sekundit vahemikus XNUMX kuni XNUMX.
Nรคited:
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
รmardamise mรตju nรคitamiseks olen kirjutanud vรคikese koodijupi, kus algul tuleb kasutada numbreid kuni 3 kohta pรคrast koma, st kรคrpida arvu 3 kohta pรคrast koma.
Mul on algne koguvรครคrtus, kรคrbitud vรครคrtuste koguvรครคrtus ning algse ja kรคrbitud vรครคrtuse erinevus.
Sama arvude komplekti puhul olen kasutanud meetodit round() kuni 3 kรผmnendkohani ning arvutanud summat ning algvรครคrtuse ja รผmardatud vรครคrtuse vahet.
Siin on nรคide ja vรคljund
Nรคiteks 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)
Vรคljund:
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
Erinevus algse ja pรคrast kรคrpimist on 499.9016193868665 ja รผmmarguselt on see 0.04661938686695066
Erinevus nรคib olevat vรคga suur ja nรคide nรคitab, kuidas รผmardamise () meetod aitab lรคhedase tรคpsuse arvutamisel.
Nรคide: รmardav ujuk Numbers
Selles programmis nรคeme, kuidas sรตnu ujuvatel numbritel รผmardatakse
# 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))
Vรคljund:
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
Nรคide: tรคisarvu vรครคrtuste รผmardamine
Kui juhtub, et kasutate tรคisarvu puhul round(), tagastab see teile numbri ilma muudatusteta.
# testing round() on a integer
num = 15
print("The output is", round(num))
Vรคljund:
The output is 15
Nรคide: รผmardamine negatiivsele Numbers
Vaatame mรตningaid nรคiteid selle kohta, kuidas รผmardamine negatiivsete arvude korral toimib
# testing round()
num = -2.8
num1 = -1.5
print("The value after rounding is", round(num))
print("The value after rounding is", round(num1))
Vรคljund:
C:\pythontest>python testround.py The value after rounding is -3 The value after rounding is -2
Nรคide: รผmarad numpy massiivid
Kuidas รผmardada tuimust massiivid pythonis?
Selle lahendamiseks saame kasutada moodulit numpy ja meetodit numpy.round() vรตi numpy.around(), nagu on nรคidatud allolevas nรคites.
Numpy.round() kasutamine
# 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)
Vรคljund:
C:\pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12]
Vรตime kasutada ka numpy.around(), mis annab teile sama tulemuse, nagu on nรคidatud allolevas nรคites.
Nรคide: kรผmnendmoodul
Lisaks funktsioonile round() on pythonil kรผmnendmoodul, mis aitab kรผmnendnumbreid tรคpsemalt kรคsitleda.
Kรผmnendmoodulil on รผmardamistรผรผbid, nagu allpool nรคidatud:
- ROUND_CEILING: see รผmardub lรตpmatuse suunas,
- ROUND_DOWN: see รผmardab vรครคrtuse nulli suunas,
- ROUND_FLOOR: see รผmardub -lรตpmatuse suunas,
- ROUND_HALF_DOWN: see รผmardub lรคhima vรครคrtuseni, liikudes nulli suunas,
- ROUND_HALF_EVEN: see รผmardub lรคhima vรครคrtuseni lรคhima paarisarvuni,
- ROUND_HALF_UP: see รผmardub lรคhima vรครคrtusega nullist eemale
- ROUND_UP: see รผmardab kohtades, kus vรครคrtus nullist eemaldub.
Kรผmnendsรผsteemis aitab meetod quantize() รผmardada kindla arvu kรผmnendkohtadeni ja saate mรครคrata kasutatava รผmardamise, nagu on nรคidatud allolevas nรคites.
Nรคide:
Kasutades รผmara() ja kรผmnendkoha meetodeid
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)
Vรคljund:
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
kokkuvรตte
- Round(float_num, Num_of_decimals) on sisseehitatud funktsioon, mis on saadaval Pythoniga. See tagastab teile ujukarvu, mis รผmardatakse sisendiks antud kรผmnendkohtadeni.
- float_num: ujukarv, mis tuleb รผmardada.
- Num_of_decimals: see on kรผmnendkohtade arv, mida รผmardamisel arvesse vรตtta.
- See tagastab tรคisarvu, kui kรผmnendkohtade_arv ei ole antud, ja ujuva vรครคrtuse, kui on antud kรผmnendkohtade_arv.
