„Python round“ () funkcija su PAVYZDŽIAIS

Apvalus ()

Round () yra įmontuota funkcija, kurią galima pasiekti su python. Tai suteiks jums plūduriuojantį skaičių, kuris bus suapvalintas iki kablelio, nurodyto kaip įvestis.

Jei dešimtainės vietos, kurios turi būti suapvalintos, nenurodomos, ji laikoma 0 ir apvalinama iki artimiausio sveiko skaičiaus.

Šioje „Python“ pamokoje sužinosite:

  • Apvalus ()
  • Sintaksė:
  • Kiek įtakos apvalinimas gali turėti? (Apvalinimas prieš sutrumpinimą)
  • Pavyzdys: Plūduriuojančių skaičių suapvalinimas
  • Pavyzdys: sveikųjų skaičių apvalinimas
  • Pavyzdys: neigiamų skaičių suapvalinimas
  • Pavyzdys: apvalūs nedideli masyvai
  • Pavyzdys: dešimtainis modulis

Sintaksė:

round(float_num, num_of_decimals)

Parametrai

  • float_num: suapvalinamas plūdės skaičius.
  • skaičius_decimals: (neprivaloma) Dešimtainių skaičius, į kurį reikia atsižvelgti apvalinant. Tai neprivaloma, o jei nenurodyta, pagal nutylėjimą ji yra 0, o apvalinimas atliekamas iki artimiausio sveiko skaičiaus.

apibūdinimas

Apskrito () metodas turi du argumentus

  • skaičius turi būti suapvalintas ir
  • po kablelio, į kurį reikėtų atsižvelgti apvalinant.

Antrasis argumentas yra neprivalomas ir pagal numatytuosius nustatymus yra 0, kai nenurodomas, ir tokiu atveju jis bus apvalinamas iki artimiausio sveiko skaičiaus, o grąžinimo tipas taip pat bus sveikas skaičius.

Kai bus dešimtainiai skaičiai, ty antrasis argumentas, jis bus suapvalintas iki nurodytų vietų skaičiaus. Grąžinimo tipas bus plūduriuojantis.

Jei skaičius po nurodyto skaičiaus po kablelio

  • > = 5, o ne + 1, bus pridėta prie galutinės vertės
  • <5, nei galutinė vertė, grįš, nes ji yra iki dešimtųjų po kablelio.

Grąžinimo vertė

Jis pateiks sveiką skaičių, jei nenurodomas dešimtainių skaičių skaičius, o jei nurodomas dešimtainis skaičius, plūduriuojančią vertę. Atkreipkite dėmesį, kad vertė bus suapvalinta iki +1, jei reikšmė po kablelio yra> = 5, priešingu atveju ji grąžins vertę iki nurodytų dešimtųjų.

Kiek įtakos apvalinimas gali turėti? (Apvalinimas prieš sutrumpinimą)

Geriausias apvalinimo poveikį parodantis pavyzdys yra biržos rinka. Praeityje, ty 1982 m., Vankuverio vertybinių popierių birža (VSE): kiekvienos prekybos metu akcijų vertė buvo padalyta į tris dešimtųjų tikslumu.

Tai buvo daroma beveik 3000 kartų kiekvieną dieną. Dėl sukauptų sutrumpinimų prarandama maždaug 25 taškai per mėnesį.

Žemiau pateiktas verčių sutrumpinimo ir apvalinimo pavyzdys.

Laikykite žemiau generuojamus slankiojo kablelio skaičius kaip atsargų vertes. Šiuo metu aš jį generuoju daugybei

1 000 000 sekundžių tarp 0,01 ir 0,05.

Pavyzdžiai:

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

Norėdamas parodyti suapvalinimo poveikį, parašiau nedidelį kodo fragmentą, kuriame iš pradžių reikia naudoti skaičius tik iki 3 skaitmenų po kablelio, ty sutrumpinti skaičių po 3 skaitmenų po kablelio.

Turiu pradinę bendrą vertę, sumą, gaunamą iš sutrumpintų verčių, ir skirtumą tarp pradinės ir sutrumpintos vertės.

Tuo pačiu skaičių rinkiniu aš naudoju apvalų () metodą iki 3 skaitmenų po kablelio ir apskaičiavau sumą bei skirtumą tarp pradinės vertės ir suapvalintos vertės.

Štai pavyzdys ir išvestis

1 pavyzdys

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)

Išvestis:

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

Skirtumas tarp originalo ir po sutrumpinimo yra 499.9016193868665, o nuo apvalaus - 0.04661938686695066

Atrodo, kad skirtumas yra labai didelis, o pavyzdys rodo, kaip apvalinti () metodas padeda apskaičiuoti artimą tikslumui.

Pavyzdys: Plūduriuojančių skaičių suapvalinimas

Šioje programoje pamatysime, kaip apvalinami skaičiai suapvalina žodžius

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

Išvestis:

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

Pavyzdys: sveikųjų skaičių apvalinimas

Jei atsitiktinai naudosite „round“ () sveiko skaičiaus vertėje, jis tiesiog grąžins jums skaičių be jokių pakeitimų.

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

Išvestis:

The output is 15

Pavyzdys: neigiamų skaičių suapvalinimas

Pažiūrėkime keletą pavyzdžių, kaip apvalinimas veikia neigiamus skaičius

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

Išvestis:

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

Pavyzdys: apvalūs nedideli masyvai

Kaip suapvalinti skaičiaus masyvus „Python“?

Norėdami tai išspręsti, galime naudoti numerio modulį ir naudoti numerio.round () arba numpy.around () metodą, kaip parodyta toliau pateiktame pavyzdyje.

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

Išvestis:

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

Mes taip pat galime naudoti numerį.around (), kuris duoda tą patį rezultatą, kaip parodyta toliau pateiktame pavyzdyje.

Pavyzdys: dešimtainis modulis

Be apvaliosios () funkcijos, pitonas turi dešimtainį modulį, kuris padeda tiksliau tvarkyti dešimtainius skaičius.

Dešimtainis modulis pateikiamas suapvalinimo tipais, kaip parodyta žemiau:

  • BĖGIMAS: jis suapvalins begalybės link,
  • ROUND_DOWN: ji apvalins vertę link nulio,
  • ROUND_FLOOR: jis apvalios link -Begalybės,
  • ROUND_HALF_DOWN: ji suapvalės iki artimiausios vertės, einančios link nulio,
  • ROUND_HALF_EVEN: jis suapvalės iki artimiausio, o vertė artės prie artimiausio sveikojo skaičiaus,
  • ROUND_HALF_UP: jis suapvalės iki artimiausio, o vertė eis nuo nulio
  • ROUND_UP: ji suapvalės, kur reikšmė nuvažiuos nuo nulio.

Dešimtainiu skaičiumi, quantize () metodas padeda suapvalinti iki fiksuoto skaičiaus dešimtųjų, ir jūs galite nurodyti, kokį apvalinimą naudoti, kaip parodyta toliau pateiktame pavyzdyje.

Pavyzdys:

Taikant apvalius () ir dešimtainius metodus

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)

Išvestis:

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

Santrauka:

  • Apvalus (float_num, Num_of_decimals) yra įmontuota funkcija, prieinama su python. Tai suteiks jums plūduriuojantį skaičių, kuris bus suapvalintas iki kablelio, kuris nurodomas kaip įvestis.
  • float_num: suapvalinamas plūdės skaičius.
  • Dešimtainių skaičių: tai dešimtainių skaičius, į kurį reikia atsižvelgti apvalinant.
  • Jis pateiks sveiką skaičių, jei nenurodomas dešimtainių skaičių skaičius, o jei nurodomas dešimtainis skaičius, plūduriuojančią vertę.

Įdomios straipsniai...