En aquest article, parlarem de Com arrodonir números a Python amb mètodes i exemples adequats Com arrodonir-se Python .
Exemple:
Input: 3.5 Output: 4 Explanation: Nearest whole number. Input: 3.74 Output: 3.7 Explanation: Rounded to one decimal place.>
Arrodoneix els nombres en Python
Arrodonir un nombre significa fer-lo més senzill mantenint el seu valor intacte però més a prop del número següent. Hi ha diversos mètodes per arrodonir nombres a Python, aquí estem discutint alguns dels que s'utilitzen generalment Com arrodonir a Python , A continuació es mostren els punts següents que es tractaran en aquest article amb Python:
- Utilitzant la funció round() integrada
- Utilitzant Truncament concepte
- Utilitzant Math.ceil() i Math.floor() funcions
- Utilitzant matemàtiques.ceil
- Utilitzant matemàtiques.pis
- Utilitzant el
numpy>Mòdul - Utilitzant el Arrodonit Concepte de biaix
- Arrodonint la meitat de zero a Python
Nombres rodons en Python u cantar Integrat rodó () Funció
A Python, hi ha una incorporació funció round(). que arrodoneix un nombre al nombre donat de dígits. La funció round() accepta dos arguments numèrics, n i n dígits, i després retorna el número n després d'arrodonir-lo a n dígits. Si no es proporciona el nombre de dígits per arrodonir, la funció arrodoneix el nombre donat n a l'enter més proper.
25 de 100
Exemple: En aquest exemple, el codi següent mostra la funció `round()` per a nombres enters i nombres de coma flotant. També il·lustra l'arrodoniment a dos decimals, demostrant casos en què el dígit següent és 5, més gran que 5 i menor que 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>))> |
>
>
Sortida:
11 23 4.46 4.48 4.47>
Nombres rodons en Python u cantar Truncament concepte
En aquesta funció, cada dígit després d'una posició determinada se substitueix per 0. python truncar () funció es pot utilitzar amb nombres positius i negatius. La funció de truncament es pot implementar de la següent manera:
- Multiplicant el nombre per 10^p (10 elevat a pthpotència) per desplaçar el punt decimal p posicions cap a la dreta.
- Prenent la part entera d'aquest número nou utilitzant int().
- Si canvieu la posició decimal p, es torna cap a l'esquerra dividint per 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>))> |
>
>
Sortida:
16.0 -3.8 3.81 340.0 -2000.0>
Nombres rodons en Python u cantar Math.ceil() i Math.floor() funcions
Matemàtiques . cel () : Aquesta funció retorna l'enter més proper que és major o igual a un nombre donat.
Math.floor() : Aquesta funció retorna l'enter més proper menor o igual a un nombre donat.
Exemple : En aquest exemple, el codi següent utilitza la biblioteca `math` per calcular els valors màxims de decimals positius i negatius amb `math.ceil` i els valors de planta amb `math.floor`. Les sortides són 5, 0, 2 i -1 per als casos respectius.
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>))> |
>
>
Sortida:
5 0 2 -1>
Nombres rodons en Python u cantar matemàtiques.ceil
L'arrodoniment d'un nombre implica desplaçar el punt decimal cap a la dreta, arrodonir-lo cap amunt i, a continuació, tornar-lo a l'esquerra per a la precisió mitjançant ` math.ceil() ` i operacions de multiplicació/divisió.
Exemple :En aquest exemple, el codi següent defineix una funció `round_up` utilitzant la biblioteca `math`, que arrodoneix un nombre a una posició decimal especificada. Utilitza la multiplicació, l'arrodoniment amb 'math.ceil()' i la divisió per a la precisió. Els valors positius i negatius es comproven per arrodonir.
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>))> |
>
>
Sortida:
3.0 2.3 2.55 30.0 2400.0>
Podem seguir el diagrama següent per entendre arrodonir cap amunt i arrodonir cap avall. Arrodoneix cap amunt a la dreta i cap avall cap a l'esquerra.

L'arrodoniment cap amunt arrodoneix sempre un número a la dreta de la recta numèrica i l'arrodoniment cap avall arrodoneix sempre un nombre a l'esquerra de la recta numèrica.
Nombres rodons en Python u cantar matemàtiques.pis
A l'arrodoniment cap avall, un nombre s'arrodoneix a un nombre especificat de dígits. La funció d'arrodoniment cap avall es pot implementar de la següent manera:
- Primer, el punt decimal en n es desplaça al nombre correcte de llocs a la dreta multiplicant n per 10 ** decimals.
- El nou valor s'arrodoneix a l'enter més proper utilitzant math.floor() .
- Finalment, el punt decimal es desplaça cap a l'esquerra dividint per 10 ** decimals.
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>))> |
>
>
Sortida:
2.0 2.4 -1.0>
Nombres rodons en Python u canta Numpy Module
El mòdul NumPy de Python proporciona el numpy.round()>funció per arrodonir números. Aquesta funció arrodoneix cada element d'una matriu al nombre enter més proper o al nombre especificat de decimals.
Exemple: En aquest exemple, el codi següent utilitza el mòdul NumPy per crear una matriu `arr` i arrodoneix cada element a l'enter més proper (`rounded_integers`) i a dos decimals (`rounded_decimals`). A continuació, els resultats s'imprimeixen per mostrar-los.
Python 3
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)> |
>
>
Sortida:
Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>
Nombres rodons en Python u cantar Biaix d'arrodoniment concepte.
El concepte de simetria introdueix la noció de biaix d'arrodoniment, que descriu com l'arrodoniment afecta les dades numèriques d'un conjunt de dades.
L'estratègia d'arrodoniment té un biaix d'arrodoniment cap a l'infinit positiu, ja que el valor sempre s'arrodoneix cap a l'infinit positiu. De la mateixa manera, l'estratègia d'arrodoniment cap avall té un biaix negatiu de l'infinit. L'estratègia de truncament té una arrodonida cap a un biaix infinit negatiu en valors positius i una arrodonida cap a l'infinit positiu per als valors negatius. Es diu que les funcions d'arrodoniment amb aquest comportament tenen un biaix cap a zero, en general.
a) Arrodonit la meitat per amunt concepte en Python
L'arrodoniment a la meitat per amunt arrodoneix tots els números al nombre més proper amb la precisió especificada i trenca els empats arrodonint cap amunt.
L'estratègia d'arrodoniment a la meitat s'implementa desplaçant el punt decimal cap a la dreta el nombre de llocs desitjat. En aquest cas, haurem de determinar si el dígit després del punt decimal desplaçat és menor o major que igual a 5.
Podem afegir 0,5 al valor que es desplaça i després arrodonir-lo per baix amb la funció math.floor().
Implementació de la funció round_half_up():
Exemple: En aquest exemple, el codi següent defineix `round_half_up`, una funció d'arrodoniment personalitzada que utilitza el mètode round half up amb `math.floor()` per a la precisió. Les demostracions inclouen nombres positius i negatius amb diverses xifres decimals.
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>))> |
>
>
Sortida:
1.3 -1.0 -1.23>
b) Arrodoniment a la meitat per avall concepte en Python
Això arrodoneix al nombre més proper de manera semblant al mètode d'arrodoniment a la meitat, la diferència és que trenca els empats arrodonint al menor dels dos nombres. L'estratègia d'arrodoniment a la meitat cap avall s'implementa substituint math.floor() a la funció round_half_up() per math.ceil() i després restant 0,5 en lloc de sumar.
Implementació de la funció round_half_down():
En aquest exemple, el codi següent defineix `round_half_down` utilitzant la biblioteca `math` per aconseguir un comportament arrodonit-half_down. Utilitza la multiplicació, la resta i 'math.ceil()' per arrodonir cap a zero. Els casos de prova inclouen decimals positius i negatius, arrodonits a un 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>))> |
>
>
Sortida:
2.0 -3.0 2.2>
Arrodonint la meitat de zero a Python
A l'arrodoniment de la meitat de zero hem de fer és començar com de costum desplaçant el punt decimal cap a la dreta un nombre determinat de llocs i després observar el dígit (d) immediatament a la dreta de la xifra decimal del nou nombre. Hi ha quatre casos a considerar:
- Si n és positiu i d>= 5, arrodoneix per avançat
- Si n és positiu i d = 5, arrodoneix per baix
- Si n és negatiu i d>= 5, arrodoneix per baix
- Si n és negatiu i d <5, arrodoneix per avançat
Després d'arrodonir segons les regles esmentades anteriorment, podem desplaçar la posició decimal cap a l'esquerra.
- Arrodoniment de la meitat a parell: Hi ha una manera de mitigar el biaix d'arrodoniment mentre arrodonim els valors d'un conjunt de dades. Simplement podem arrodonir els llaços al nombre parell més proper amb la precisió desitjada. L'estratègia d'arrodoniment de la meitat a parell és l'estratègia utilitzada per round() integrat de Python. El classe decimal proporciona suport per a l'aritmètica ràpida de coma flotant decimal arrodonit correctament. Això ofereix diversos avantatges respecte al tipus de dades flotant. L'estratègia d'arrodoniment predeterminada al mòdul decimal és ROUND_HALF_EVEN.
Exemple: En aquest exemple, el codi següent utilitza la funció `Decimal` de la biblioteca `decimal` per representar els nombres decimals amb precisió. Contrasta la creació d'un objecte 'Decimal' a partir d'una cadena i directament a partir d'un nombre de coma flotant. La funció `quantize()` s'utilitza llavors per arrodonir amb posicions decimals especificades, demostrant la precisió en l'aritmètica decimal.
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'>)))> |
>
>
Sortida:
0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>