„Python“ turas ()

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 ndigitsnepateikiama, round()grąžina artimiausią nurodyto skaičiaus sveikąjį skaičių.
  • Jei ndigitsyra, round()grąžina skaičių suapvalintą iki ndigitsskaitmenų.

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.67vietoj 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.675skaič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 decimalslankiojo 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

Įdomios straipsniai...