logo

Hur avrundar man siffror i Python?

I den här artikeln kommer vi att diskutera hur man avrundar tal i Python med lämpliga metoder och exempel på Hur man rundar upp i Pytonorm .

Exempel:



  Input:   3.5   Output:   4   Explanation:   Nearest whole number.   Input:   3.74   Output:   3.7   Explanation:   Rounded to one decimal place.>

Runda upp siffror i Python

Att avrunda ett tal innebär att göra talet enklare genom att behålla dess värde intakt men närmare nästa tal. Det finns olika metoder för att avrunda tal i Python här diskuterar vi några som vanligtvis används för Hur man avrundar i Python , Nedan följer följande punkter som kommer att behandlas i den här artikeln med Python:

  • Använder den inbyggda round()-funktionen
  • Använder sig av Avkortning begrepp
  • Använder sig av Math.ceil() och Math.floor() funktioner
  • Använder sig av math.tak
  • Använder sig av math.golv
  • Använda numpy> Modul
  • Använda Avrundning Bias koncept
  • Avrundar halvvägs från noll i Python

Runda siffror i Python u sjunga Inbyggt runda() Fungera

I Python finns en inbyggd round() funktion som avrundar ett tal till det angivna antalet siffror. Funktionen round() accepterar två numeriska argument, n och n siffror, och returnerar sedan talet n efter att ha avrundat det till n siffror. Om antalet siffror inte anges för avrundning, avrundar funktionen det givna talet n till närmaste heltal.

java sömn

Exempel: I det här exemplet visar koden nedan funktionen `round()` för heltal och flyttal. Den illustrerar också avrundning till två decimaler, vilket visar fall där nästa siffra är 5, större än 5 och mindre än 5.



python3






# For integers> print>(>round>(>11>))> # For floating point> print>(>round>(>22.7>))> # if the second parameter is present> # when the (ndigit+1)th digit is =5> print>(>round>(>4.465>,>2>))> > # when the (ndigit+1)th digit is>=5> print>(>round>(>4.476>,>2>))> > # when the (ndigit+1)th digit is <5> print>(>round>(>4.473>,>2>))>

>

>

Produktion:

11 23 4.46 4.48 4.47>

Runda siffror i Python u sjunga Avkortning begrepp

I denna funktion ersätts varje siffra efter en given position med 0. python stympa() fungera kan användas med såväl positiva som negativa tal. Trunkeringsfunktionen kan implementeras på följande sätt:

  • Multiplicera talet med 10^p (10 upphöjt till pthpower) för att flytta decimaltecknet p till höger.
  • Att ta heltalsdelen av det nya talet med int().
  • Om du flyttar decimalen p placeras tillbaka till vänster genom att dividera med 10^p.

python3




# defining truncate function> # second argument defaults to 0> # so that if no argument is passed> # it returns the integer part of number> def> truncate(n, decimals>=> 0>):> >multiplier>=> 10> *>*> decimals> >return> int>(n>*> multiplier)>/> multiplier> print>(truncate(>16.5>))> print>(truncate(>->3.853>,>1>))> print>(truncate(>3.815>,>2>))> # we can truncate digits towards the left of the decimal point> # by passing a negative number.> print>(truncate(>346.8>,>->1>))> print>(truncate(>->2947.48>,>->3>))>

>

>

Produktion:

16.0 -3.8 3.81 340.0 -2000.0>

Runda siffror i Python u sjunga Math.ceil() och Math.floor() funktioner

Matematik . tak() : Denna funktion returnerar närmaste heltal som är större än eller lika med ett givet tal.
Math.floor() : Denna funktion returnerar närmaste heltal mindre än eller lika med ett givet tal.

Exempel :I det här exemplet använder koden nedan `math`-biblioteket för att beräkna takvärden för positiva och negativa decimaler med `math.ceil` och golvvärden med `math.floor`. Utgångarna är 5, 0, 2 och -1 för respektive fall.

python3




# import math library> import> math> # ceil value for positive> # decimal number> print>(math.ceil(>4.2>))> # ceil value for negative> # decimal number> print>(math.ceil(>->0.5>))> # floor value for decimal> # and negative number> print>(math.floor(>2.2>))> print>(math.floor(>->0.5>))>

>

>

Produktion:

5 0 2 -1>

Runda siffror i Python u sjung math.ceil

Att avrunda ett tal uppåt innebär att decimalkomma flyttas åt höger, avrundas uppåt och sedan flyttas tillbaka till vänster för precision med ` math.ceil() ` och multiplikation/divisionsoperationer.

Exempel :I det här exemplet definierar koden nedan en `round_up`-funktion med hjälp av `matte`-biblioteket, som avrundar ett tal till en angiven decimal. Den använder multiplikation, avrundning med `math.ceil()` och division för precision. Positiva och negativa värden testas för avrundning.

python3




# import math library> import> math> # define a function for> # round_up> def> round_up(n, decimals>=> 0>):> >multiplier>=> 10> *>*> decimals> >return> math.ceil(n>*> multiplier)>/> multiplier> # passing positive values> print>(round_up(>2.1>))> print>(round_up(>2.23>,>1>))> print>(round_up(>2.543>,>2>))> # passing negative values> print>(round_up(>22.45>,>->1>))> print>(round_up(>2352>,>->2>))>

>

>

Produktion:

3.0 2.3 2.55 30.0 2400.0>

Vi kan följa diagrammet nedan för att förstå runda upp och avrunda nedåt. Runda uppåt till höger och nedåt till vänster.

Förstå avrundning uppåt och avrundning nedåt

Avrundning uppåt avrundar alltid ett tal åt höger på talraden och avrundning nedåt avrundar alltid ett tal åt vänster på talraden.

Runda siffror i Python u sjunga math.golv

Vid avrundning nedåt avrundas ett tal nedåt till ett visst antal siffror. Avrundningsfunktionen kan implementeras på följande sätt:

  • Först flyttas decimaltecknet i n till rätt antal platser till höger genom att multiplicera n med 10 ** decimaler.
  • Det nya värdet avrundas uppåt till närmaste heltal med hjälp av math.floor() .
  • Slutligen flyttas decimalkomma tillbaka till vänster genom att dividera med 10 ** decimaler.

python3




import> math> # defining a function for> # round down.> def> round_down(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.floor(n>*> multiplier)>/> multiplier> # passing different values to function> print>(round_down(>2.5>))> print>(round_down(>2.48>,>1>))> print>(round_down(>->0.5>))>

>

>

Produktion:

2.0 2.4 -1.0>

Runda siffror i Python u sjunga Numpy Module

NumPy-modulen i Python tillhandahåller numpy.round()>fungera att avrunda siffror. Denna funktion avrundar varje element i en array till närmaste heltal eller till det angivna antalet decimaler.

Exempel: I det här exemplet använder koden nedan NumPy-modulen för att skapa en matris `arr` och avrundar varje element till närmaste heltal (`rounded_integers`) och till två decimaler (`rounded_decimals`). Resultaten skrivs sedan ut för visning.

Python3




import> numpy as np> # Creating an array> arr>=> np.array([>1.234>,>2.567>,>3.789>])> # Rounding each element to the nearest integer> rounded_integers>=> np.>round>(arr)> # Rounding each element to two decimal places> rounded_decimals>=> np.>round>(arr, decimals>=>2>)> # Displaying the results> print>(>'Nearest integer:'>, rounded_integers)> print>(>'Decimal places:'>, rounded_decimals)>

>

>

Utgång:

Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>

Runda siffror i Python u sjunga Avrundning Bias begrepp.

Begreppet symmetri introducerar begreppet avrundningsbias, som beskriver hur avrundning påverkar numeriska data i en datauppsättning.
Avrundningsstrategin har en avrundning mot positiv oändlighetsbias, eftersom värdet alltid avrundas uppåt i riktning mot positiv oändlighet. På samma sätt har strategin för avrundning nedåt en runda mot negativ oändlighetsbias. Trunkeringsstrategin har en runda mot negativ oändlighetsbias på positiva värden och en runda mot positiv oändlighet för negativa värden. Avrundningsfunktioner med detta beteende sägs ha en avrundning mot noll bias, i allmänhet.

a) Avrundning till hälften uppåt koncept i Python

Avrundningen halvt uppåt avrundar varje nummer till närmaste nummer med angiven precision och bryter banden genom att avrunda uppåt.
Strategin att avrunda halvt uppåt implementeras genom att flytta decimaltecknet åt höger med önskat antal platser. I det här fallet måste vi bestämma om siffran efter den förskjutna decimalpunkten är mindre än eller större än lika med 5.
Vi kan lägga till 0,5 till värdet som flyttas och sedan avrunda det nedåt med math.floor()-funktionen.

Implementering av round_half_up() funktion:

Exempel: I det här exemplet definierar koden nedan `round_half_up`, en anpassad avrundningsfunktion som använder metoden round half up med `math.floor()` för precision. Demonstrationer inkluderar positiva och negativa tal med olika decimaler.

python3




import> math> # defining round_half_up> def> round_half_up(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.floor(n>*> multiplier>+> 0.5>)>/> multiplier> # passing different values to the function> print>(round_half_up(>1.28>,>1>))> print>(round_half_up(>->1.5>))> print>(round_half_up(>->1.225>,>2>))>

>

>

Produktion:

1.3 -1.0 -1.23>

b) Avrundning till hälften nedåt koncept i Python

Detta avrundas till närmaste tal som liknar avrundningsmetoden till hälften uppåt, skillnaden är att den bryter banden genom att avrunda till det minsta av de två talen. Strategin för att avrunda hälften nedåt implementeras genom att ersätta math.floor() i funktionen round_half_up() med math.ceil() och sedan genom att subtrahera 0,5 istället för att lägga till.

Implementering av round_half_down() funktion:

I det här exemplet definierar koden nedan `round_half_down` med hjälp av `math`-biblioteket för att uppnå round-half-down beteende. Den använder multiplikation, subtraktion och `math.ceil()` för att avrunda mot noll. Testfall inkluderar positiva och negativa decimaler, avrundning till en decimal.

python3




# import math library> import> math> # defining a function> # for round_half_down> def> round_half_down(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.ceil(n>*> multiplier>-> 0.5>)>/> multiplier> # passing different values to the function> print>(round_half_down(>2.5>))> print>(round_half_down(>->2.5>))> print>(round_half_down(>2.25>,>1>))>

>

>

Produktion:

2.0 -3.0 2.2>

Avrundar halvvägs från noll i Python

När vi avrundar halva vägen från noll måste vi börja som vanligt med att flytta decimaltecknet åt höger ett givet antal platser och sedan lägga märke till siffran(d) omedelbart till höger om decimalen i det nya talet. Det finns fyra fall att överväga:

  • Om n är positivt och d>= 5, avrunda uppåt
  • Om n är positivt och d = 5, avrunda nedåt
  • Om n är negativ och d>= 5, avrunda nedåt
  • Om n är negativ och d <5, avrunda uppåt

Efter avrundning enligt reglerna ovan kan vi flytta tillbaka decimalen till vänster.

  • Avrundar halvan till jämnt: Det finns ett sätt att mildra avrundningsbias medan vi avrundar värden i en datauppsättning. Vi kan helt enkelt avrunda band till närmaste jämna nummer med önskad precision. Strategin för avrundning till hälften till jämn är den strategi som används av Pythons inbyggda runda(). De decimalklass ger stöd för snabb korrekt avrundad decimal flyttalsaritmetik. Detta erbjuder flera fördelar jämfört med flytdatatypen. Standardavrundningsstrategin i decimalmodulen är ROUND_HALF_EVEN.

Exempel: I det här exemplet använder koden nedan funktionen `Decimal` från biblioteket `decimal` för att representera decimaltal exakt. Det kontrasterar att skapa ett 'decimal'-objekt från en sträng och direkt från ett flyttal. Funktionen `quantize()` används sedan för avrundning med specificerade decimaler, vilket visar precision i decimalaritmetik.

python3




# import Decimal function from> # decimal library> from> decimal>import> Decimal> print>(Decimal(>'0.1'>))> print>(Decimal(>0.1>))> # Rounding a Decimal number is> # done with the .quantize() function> # '1.0' in .quantize() determines the> # number of decimal places to round the number> print>(Decimal(>'1.65'>).quantize(Decimal(>'1.0'>)))> print>(Decimal(>'1.675'>).quantize(Decimal(>'1.00'>)))>

>

>

Produktion:

0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>