Python round () -funktio esimerkeillä

Sisällysluettelo:

Anonim

Pyöristää()

Round () on sisäänrakennettu toiminto, joka on saatavana pythonin kanssa. Se palauttaa sinulle kelluvan luvun, joka pyöristetään syötteenä annettuihin desimaaleihin.

Jos pyöristettäviä desimaaleja ei määritetä, sitä pidetään 0: na ja se pyöristetään lähimpään kokonaislukuun.

Tässä Python-opetusohjelmassa opit:

  • Pyöristää()
  • Syntaksi:
  • Kuinka paljon pyöristyksellä voi olla vaikutusta? (Pyöristys vs. katkaisu)
  • Esimerkki: Kelluvien numeroiden pyöristäminen
  • Esimerkki: Kokonaisarvojen pyöristäminen
  • Esimerkki: Negatiivisten numeroiden pyöristäminen
  • Esimerkki: Pyöreät Numpy-taulukot
  • Esimerkki: Desimaalimoduuli

Syntaksi:

round(float_num, num_of_decimals)

Parametrit

  • float_num: pyöristettävä kellunumero.
  • desimaalien lukumäärä: (valinnainen) Pyöristettäessä huomioon otettavien desimaalien määrä. Se on valinnainen, ja jos sitä ei määritetä, se oletusarvoisesti on 0, ja pyöristys tehdään lähimpään kokonaislukuun.

Kuvaus

Round () -menetelmällä on kaksi argumenttia

  • pyöristettävä numero ja
  • desimaalipisteet, jotka sen tulisi ottaa huomioon pyöristettäessä.

Toinen argumentti on valinnainen ja oletusarvona on 0, kun sitä ei ole määritelty, ja tällöin se pyöristetään lähimpään kokonaislukuun, ja palautustyyppi on myös kokonaisluku.

Kun desimaalipisteet eli toinen argumentti on läsnä, se pyöristetään annettujen paikkojen määrään. Palautustyyppi on kelluva.

Jos annettu desimaalin jälkeinen luku

  • > = 5 kuin + 1 lisätään lopulliseen arvoon
  • <5 kuin lopullinen arvo palautuu, koska se on mainittujen desimaalien mukainen.

Palautusarvo

Se palauttaa kokonaisluvun, jos desimaalien lukua ei anneta, ja kelluvan arvon, jos desimaalien numero on annettu. Huomaa, että arvo pyöristetään +1: een, jos desimaalipilkun jälkeinen arvo on> = 5, muuten se palauttaa arvon, kun se on mainittujen desimaalien mukaiseen.

Kuinka paljon pyöristyksellä voi olla vaikutusta? (Pyöristys vs. katkaisu)

Paras esimerkki pyöristämisen vaikutuksista on pörssimarkkinat. Aiemmin eli vuonna 1982 Vancouverin pörssi (VSE): käytettiin lyhentämään osakkeiden arvot kolmen desimaalin tarkkuudella jokaisessa kaupassa.

Se tehtiin lähes 3000 kertaa päivässä. Kertyneet katkaisut johtavat noin 25 pisteen menetykseen kuukaudessa.

Alla on esimerkki arvojen katkaisemisesta pyöristämisen suhteen.

Harkitse alla tuotettuja liukulukujen lukuja osakearvoina. Tällä hetkellä tuotan sitä useille

1000000 sekuntia välillä 0,01 ja 0,05.

Esimerkkejä:

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]

Pyöristämisen vaikutuksen osoittamiseksi olen kirjoittanut pienen koodinpätkän, jossa sinun on ensin käytettävä numeroita enintään 3 desimaalin tarkkuudella, ts. Katkaisemalla numero kolmen desimaalin jälkeen.

Minulla on alkuperäinen kokonaisarvo, typistetyistä arvoista saatu summa ja alkuperäisen ja katkaistun arvon ero.

Samoilla numeroilla olen käyttänyt pyöreää () -menetelmää kolmen desimaalin tarkkuudella ja laskenut summan ja eron alkuperäisen arvon ja pyöristetyn arvon välillä.

Tässä on esimerkki ja tulos

Esimerkki 1

import randomdef truncate(num):return int(num * 1000) / 1000arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]sum_num = 0sum_truncate = 0for i in arr:sum_num = sum_num + isum_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 = 0sum_truncate1 = 0for i in arr:sum_num1 = sum_num1 + isum_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)

Tuotos:

Testing by using truncating upto 3 decimal placesThe original sum is = 29985.958619386867The total using truncate = 29486.057The difference from original - truncate = 499.9016193868665Testing by using round() up to 3 decimal placesThe original sum is = 29985.958619386867The total using round = 29985.912The difference from original - round = 0.04661938686695066

Alkuperäisen ja katkaisun välinen ero on 499,9016193868665, ja pyöristettynä se on 0,04661938686695066

Ero näyttää olevan erittäin suuri, ja esimerkki osoittaa, kuinka pyöristysmenetelmä auttaa laskemaan lähellä tarkkuutta.

Esimerkki: Kelluvien numeroiden pyöristäminen

Tässä ohjelmassa näemme kuinka pyöristetään sanat kelluvilla numeroilla

# 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 >5float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5print("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))

Tuotos:

The rounded value without num_of_decimals is : 11The rounded value without num_of_decimals is : 10The rounded value with num_of_decimals as 2 is : 10.35The rounded value with num_of_decimals as 2 is : 10.34

Esimerkki: Kokonaisarvojen pyöristäminen

Jos satut käyttämään kierrosta () kokonaisluvussa, se palauttaa numeron takaisin ilman muutoksia.

# testing round() on a integernum = 15print("The output is", round(num))

Tuotos:

The output is 15

Esimerkki: Negatiivisten numeroiden pyöristäminen

Katsotaanpa muutama esimerkki siitä, miten pyöristys toimii negatiivisilla luvuilla

# testing round()num = -2.8num1 = -1.5print("The value after rounding is", round(num))print("The value after rounding is", round(num1))

Tuotos:

C:\pythontest>python testround.pyThe value after rounding is -3The value after rounding is -2

Esimerkki: Pyöreät Numpy-taulukot

Kuinka pyöristää numpy-taulukot pythonissa?

Tämän ratkaisemiseksi voimme käyttää numpy-moduulia ja käyttää numpy.round () tai numpy.around () -menetelmää, kuten alla olevassa esimerkissä on esitetty.

Käyttämällä numpy.round ()

# testing round()import numpy as nparr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323]arr1 = np.round(arr, 2)print(arr1)

Tuotos:

C:\pythontest>python testround.py[-0.34 1.46 4.23 -0.34 7.63 5.12]

Voimme käyttää myös numeroa.around (), mikä antaa sinulle saman tuloksen kuin alla olevassa esimerkissä.

Esimerkki: Desimaalimoduuli

Pythonissa on round () -funktion lisäksi desimaalimoduuli, joka auttaa käsittelemään desimaalilukuja tarkemmin.

Desimaalimoduulissa on pyöristystyypit, kuten alla on esitetty:

  • KIINTEÄ: se pyörii kohti Infinityä,
  • ROUND_DOWN: se pyöristää arvon kohti nollaa,
  • ROUND_FLOOR: se pyörii kohti -Rajattomuutta,
  • ROUND_HALF_DOWN: se pyöristyy lähimpään arvoon kohti nollaa,
  • ROUND_HALF_EVEN: se pyöristetään lähimpään arvoon lähimpään parilliseen kokonaislukuun,
  • ROUND_HALF_UP: se pyöristetään lähimpään arvon ollessa poispäin nollasta
  • ROUND_UP: se pyöristetään, missä arvo menee pois nollasta.

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

Esimerkki:

Käyttämällä pyöreitä () ja desimaalimenetelmiä

import decimalround_num = 15.456final_val = round(round_num, 2)#Using decimal modulefinal_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)

Tuotos:

Using round() 15.46Using Decimal - ROUND_CEILING 15.46Using Decimal - ROUND_DOWN 15.45Using Decimal - ROUND_FLOOR 15.45Using Decimal - ROUND_HALF_DOWN 15.46Using Decimal - ROUND_HALF_EVEN 15.46Using Decimal - ROUND_HALF_UP 15.46Using Decimal - ROUND_UP 15.46

Yhteenveto:

  • Round (float_num, Num_of_decimals) on sisäänrakennettu toiminto, joka on saatavana pythonin kanssa. Se palauttaa kellunumeron, joka pyöristetään syötteenä annettuihin desimaaleihin.
  • float_num: pyöristettävä kellunumero.
  • Desimaalien lukumäärä: Se on desimaalien määrä, joka on otettava huomioon pyöristettäessä.
  • Se palauttaa kokonaisluvun, jos desimaalien lukua ei anneta, ja kelluvan arvon, jos desimaalien numero on annettu.