Funkcija round () pateikia slankiojo kablelio skaičių, suapvalintą iki nurodyto skaičiaus po kablelio.
round()
Funkcijos sintaksė yra tokia:
apvalus (skaičius, skaitmenys)
apvalus () parametrai
round()
Funkcija trunka du parametrus:
- skaičius - skaičius, kurį reikia suapvalinti
- skaitmenys (neprivaloma) - skaičius, iki kurio suapvalinamas nurodytas skaičius; pagal nutylėjimą yra 0
Grąžinimo vertė iš apvalaus ()
- Jei
ndigits
nepateikiama,round()
grąžina artimiausią nurodyto skaičiaus sveikąjį skaičių. - Jei
ndigits
yra,round()
grąžina skaičių suapvalintą ikindigits
skaitmenų.
1 pavyzdys: Kaip „Python“ veikia „round“ ()?
# for integers print(round(10)) # for floating point print(round(10.7)) # even choice print(round(5.5))
Rezultatas
10 11 6
2 pavyzdys: suapvalinkite skaičių iki nurodyto skaičiaus po kablelio
print(round(2.665, 2)) print(round(2.675, 2))
Rezultatas
2,67 2,67
Pastaba : round()
plūdurų elgesys gali nustebinti. Pranešimas round(2.675, 2)
pateikia 2.67
vietoj laukiamo 2.68
. Tai nėra klaida: tai yra faktas, kad daugumos dešimtainių trupmenų negalima tiksliai parodyti kaip plūdės.
Kai dešimtainis 2.675
skaičius konvertuojamas į dvejetainį slankiojo kablelio skaičių, jis vėl pakeičiamas dvejetainiu aproksimavimu, kurio tiksli reikšmė yra:
2.67499999999999982236431605997495353221893310546875
Dėl to jis suapvalinamas iki 2.67.
Jei esate tokioje situacijoje, kai reikalingas šis tikslumas, apsvarstykite galimybę naudoti decimal
slankiojo kablelio aritmetikai skirtą modulį:
from decimal import Decimal # normal float num = 2.675 print(round(num, 2)) # using decimal.Decimal (passed float as string for precision) num = Decimal('2.675') print(round(num, 2))
Rezultatas
2,67 2,68