In questo articolo discuteremo di come arrotondare i numeri in Python con metodi ed esempi adatti Come arrotondare Pitone .
Esempio:
Input: 3.5 Output: 4 Explanation: Nearest whole number. Input: 3.74 Output: 3.7 Explanation: Rounded to one decimal place.>
Arrotondare i numeri in Python
Arrotondare un numero significa semplificare il numero mantenendone il valore intatto ma più vicino al numero successivo. Esistono vari metodi per arrotondare i numeri in Python, qui ne discuteremo alcuni generalmente utilizzati Come arrotondare per eccesso in Python , Di seguito sono riportati i seguenti punti che verranno trattati in questo articolo utilizzando Python:
- Utilizzo della funzione round() incorporata
- Utilizzando Troncamento concetto
- Utilizzando Matematica.ceil() E Piano matematico() funzioni
- Utilizzando matematica.ceil
- Utilizzando matematica.piano
- Usando il
numpy>Modulo - Usando il Arrotondamento Concetto di pregiudizio
- Arrotondamento a metà dallo zero in Python
Numeri tondi in Python u cantare Integrato girare() Funzione
In Python, c'è un built-in funzione round() che arrotonda un numero al numero di cifre specificato. La funzione round() accetta due argomenti numerici, n e n cifre, quindi restituisce il numero n dopo averlo arrotondato a n cifre. Se non viene fornito il numero di cifre per l'arrotondamento, la funzione arrotonda il numero n specificato all'intero più vicino.
stringa di rifinitura Java
Esempio : In questo esempio il codice seguente mostra la funzione `round()` per numeri interi e a virgola mobile. Illustra inoltre l'arrotondamento a due cifre decimali, dimostrando i casi in cui la cifra successiva è 5, maggiore di 5 e inferiore a 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>))> |
>
>
Produzione:
11 23 4.46 4.48 4.47>
Numeri tondi in Python u cantare Troncamento concetto
In questa funzione, ogni cifra dopo una determinata posizione viene sostituita con 0. python troncare() funzione può essere utilizzato con numeri positivi e negativi. La funzione di troncamento può essere implementata nel modo seguente:
- Moltiplicando il numero per 10^p (10 elevato a pthpotenza) per spostare la virgola decimale p posti verso destra.
- Prendendo la parte intera di quel nuovo numero usando int().
- Spostando la cifra decimale p si torna a sinistra dividendo 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>))> |
>
>
Produzione:
16.0 -3.8 3.81 340.0 -2000.0>
Numeri tondi in Python u cantare Matematica.ceil() E Piano matematico() funzioni
Matematica . ceil() : Questa funzione restituisce il numero intero più vicino maggiore o uguale a un determinato numero.
Piano matematico() : Questa funzione restituisce l'intero più vicino minore o uguale a un determinato numero.
Esempio :In questo esempio il codice seguente utilizza la libreria 'math' per calcolare i valori massimi per i decimali positivi e negativi con 'math.ceil' e i valori minimi con 'math.floor'. Le uscite sono 5, 0, 2 e -1 per i rispettivi casi.
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>))> |
>
>
Produzione:
5 0 2 -1>
Numeri tondi in Python u cantare matematica.ceil
L'arrotondamento di un numero comporta lo spostamento del punto decimale a destra, l'arrotondamento per eccesso e quindi lo spostamento di nuovo a sinistra per precisione utilizzando ` matematica.ceil() ` e operazioni di moltiplicazione/divisione.
Esempio :In questo esempio il codice seguente definisce una funzione `round_up` utilizzando la libreria `math`, che arrotonda un numero alla cifra decimale specificata. Utilizza la moltiplicazione, l'arrotondamento con `math.ceil()` e la divisione per la precisione. I valori positivi e negativi vengono testati per l'arrotondamento.
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>))> |
>
>
Produzione:
3.0 2.3 2.55 30.0 2400.0>
Possiamo seguire il diagramma qui sotto per capire l'arrotondamento per eccesso e per difetto. Arrotondare verso l'alto a destra e verso il basso a sinistra.

L'arrotondamento per eccesso arrotonda sempre un numero a destra sulla linea numerica, mentre l'arrotondamento per difetto arrotonda sempre un numero a sinistra sulla linea numerica.
Numeri tondi in Python u cantare matematica.piano
Nell'arrotondamento per difetto un numero viene arrotondato per difetto a un numero specificato di cifre. La funzione di arrotondamento per difetto può essere implementata nel seguente modo:
- Innanzitutto, il punto decimale in n viene spostato al numero corretto di posizioni a destra moltiplicando n per 10 ** decimali.
- Il nuovo valore viene arrotondato al numero intero più vicino utilizzando matematica.piano() .
- Infine, la virgola decimale viene spostata nuovamente a sinistra dividendo per 10** decimali.
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>))> |
>
>
Produzione:
2.0 2.4 -1.0>
Numeri tondi in Python u canta il modulo Numpy
Il modulo NumPy in Python fornisce il file numpy.round()>funzione per arrotondare i numeri. Questa funzione arrotonda ciascun elemento di un array all'intero più vicino o al numero specificato di decimali.
Esempio : In questo esempio il codice seguente utilizza il modulo NumPy per creare un array 'arr' e arrotonda ciascun elemento all'intero più vicino (`rounded_integers`) e a due cifre decimali (`rounded_decimals`). I risultati vengono quindi stampati per la visualizzazione.
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)> |
>
>
Produzione :
Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>
Numeri tondi in Python u cantare Bias di arrotondamento concetto.
Il concetto di simmetria introduce la nozione di distorsione da arrotondamento, che descrive il modo in cui l'arrotondamento influisce sui dati numerici in un set di dati.
La strategia di arrotondamento per eccesso prevede un arrotondamento verso l'infinito positivo, poiché il valore viene sempre arrotondato per eccesso nella direzione dell'infinito positivo. Allo stesso modo, la strategia di arrotondamento per difetto ha una distorsione verso l’infinito negativo. La strategia di troncamento prevede un arrotondamento verso l'infinito negativo sui valori positivi e un arrotondamento verso l'infinito positivo per i valori negativi. Si dice che le funzioni di arrotondamento con questo comportamento abbiano un arrotondamento verso una distorsione pari a zero, in generale.
a) Arrotondamento per metà concetto in Python
L'arrotondamento per eccesso arrotonda ogni numero al numero più vicino con la precisione specificata e risolve i casi di parità arrotondando per eccesso.
La strategia dell'arrotondamento per eccesso viene implementata spostando la virgola verso destra del numero di cifre desiderato. In questo caso dovremo determinare se la cifra dopo la virgola spostata è minore o maggiore di uguale a 5.
Possiamo aggiungere 0,5 al valore che viene spostato e poi arrotondarlo per difetto con la funzione math.floor().
Implementazione della funzione round_half_up():
Esempio: In questo esempio il codice seguente definisce `round_half_up`, una funzione di arrotondamento personalizzata che utilizza il metodo round half up con `math.floor()` per la precisione. Le dimostrazioni includono numeri positivi e negativi con varie cifre decimali.
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>))> |
>
>
Produzione:
1.3 -1.0 -1.23>
b) Arrotondamento per metà concetto in Python
Questo arrotonda al numero più vicino in modo simile al metodo di arrotondamento per eccesso, la differenza è che risolve i casi di parità arrotondando al minore dei due numeri. La strategia di arrotondamento a metà viene implementata sostituendo math.floor() nella funzione round_half_up() con math.ceil() e quindi sottraendo 0,5 invece di aggiungere.
Implementazione della funzione round_half_down():
In questo esempio il codice seguente definisce 'round_half_down' utilizzando la libreria 'math' per ottenere il comportamento round-half-down. Utilizza la moltiplicazione, la sottrazione e `math.ceil()` per arrotondare verso lo zero. I casi di test includono decimali positivi e negativi, arrotondati a una cifra decimale.
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>))> |
>
>
Produzione:
2.0 -3.0 2.2>
Arrotondamento a metà dallo zero in Python
Nell'arrotondamento a metà da zero quello che dobbiamo fare è iniziare come al solito spostando la virgola a destra di un dato numero di cifre e quindi notare la cifra (d) immediatamente a destra della cifra decimale nel nuovo numero. Ci sono quattro casi da considerare:
- Se n è positivo e d>= 5, arrotondare per eccesso
- Se n è positivo e d = 5, arrotonda per difetto
- Se n è negativo e d>= 5, arrotondare per difetto
- Se n è negativo e d <5, arrotondare per eccesso
Dopo aver arrotondato secondo le regole sopra menzionate, possiamo spostare la cifra decimale nuovamente a sinistra.
- Arrotondamento da metà a pari: Esiste un modo per mitigare gli errori di arrotondamento mentre arrotondiamo i valori in un set di dati. Possiamo semplicemente arrotondare le legature di valore al numero pari più vicino con la precisione desiderata. La strategia di arrotondamento da metà a pari è la strategia utilizzata dalla funzione round() incorporata di Python. IL classe decimale fornisce il supporto per l'aritmetica decimale in virgola mobile veloce con arrotondamento corretto. Ciò offre numerosi vantaggi rispetto al tipo di dati float. La strategia di arrotondamento predefinita nel modulo decimale è ROUND_HALF_EVEN.
Esempio: In questo esempio il codice seguente utilizza la funzione 'Decimal' della libreria 'decimal' per rappresentare con precisione i numeri decimali. Si oppone alla creazione di un oggetto 'Decimal' da una stringa e direttamente da un numero a virgola mobile. La funzione `quantize()` viene quindi utilizzata per arrotondare con cifre decimali specificate, dimostrando la precisione nell'aritmetica decimale.
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'>)))> |
>
>
Produzione:
0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>