Sariți la conținutul principal

Rotunjire la 2 zecimale în Python: 7 metode explicate

Află cum să rotunjești un număr la două zecimale în Python folosind round(), f-strings, format(), modulul decimal, NumPy și altele — cu un tabel comparativ al metodelor.
Actualizat 2 iun. 2026  · 7 min. citire

Rotunjirea numerelor la două zecimale este o tehnică importantă în Python. Este deosebit de utilă în calcule financiare, prezentarea datelor și raportarea științifică.

Python oferă o gamă de metode pentru rotunjire precisă. În acest tutorial, îți voi arăta cum să rotunjești un număr la două zecimale în Python folosind funcții încorporate, biblioteci și metode de formatare.

Dacă abia începi ca analist de date, îți recomand cursul DataCamp Introduction to Python pentru a învăța bazele Python pentru manipularea și transformarea datelor. De asemenea, vei găsi util tutorialul nostru Python NumPy dacă trebuie să rotunjești tablouri mari de numere în fluxurile de analiză a datelor.

Pe scurt

  • Folosește round(number, 2) pentru rotunjire aritmetică — modifică valoarea efectivă.

  • Folosește f"{number:.2f}" sau str.format() doar pentru afișare — valoarea float originală rămâne neschimbată.

  • Folosește modulul decimal când ai nevoie de precizie zecimală exactă (de ex., calcule financiare).

  • Folosește np.round(array, 2) pentru a rotunji întregul tablou NumPy dintr-un singur apel.

  • Ai grijă la surprizele de precizie ale float-urilor: round(2.675, 2) întoarce 2.67, nu 2.68, din cauza modului în care sunt stocate în memorie numerele float.

Ce înseamnă rotunjirea și zecimalele

Zecimalele se referă la cifrele care apar imediat după punctul zecimal într-un număr. Zecimalele sunt importante deoarece determină precizia unui număr. Cu cât sunt mai multe zecimale, cu atât este mai precis și invers.

Rotunjirea numerelor înseamnă ajustarea unui număr prin reducerea numărului de zecimale. Această tehnică este folosită de obicei pentru a simplifica un număr păstrând totodată consistența între calcule. Totuși, rotunjirea unui număr la un anumit număr de zecimale afectează acuratețea valorilor calculate, din cauza erorilor mici introduse în timpul rotunjirii.

Python oferă diferite metode pentru rotunjirea numerelor la două zecimale. Următoarele exemple oferă explicații detaliate ale acestor tehnici.

Folosirea round() pentru a rotunji un număr în Python

Funcția round() este funcția încorporată a Python pentru rotunjirea numerelor în virgulă mobilă la numărul specificat de zecimale. Poți specifica numărul de zecimale pentru rotunjire oferind o valoare ca al doilea argument. Exemplul de mai jos afișează 34.15.

# Example number to be rounded
number = 34.14559

# Rounding the number to 2 decimal places
rounded_number = round(number, 2)

print(rounded_number)

# 34.15

Funcția round() din Python folosește „round half to even” ca mod implicit de rotunjire atunci când omiți al doilea argument. Round half to even (rotunjire bancară) înseamnă că, atunci când un număr este exact la jumătatea distanței între doi întregi, este rotunjit la întregul par cel mai apropiat. Această tehnică este utilă deoarece poate ajuta la minimizarea erorilor cumulative de rotunjire.

Capcană de precizie float cu round()

Există o subtilitate pe care merită să o știi înainte să te bazezi pe round() în cod financiar. Încearcă asta:

print(round(2.675, 2))  # You might expect 2.68
# Output: 2.67

Rezultatul este 2.67, nu 2.68. Valoarea 2.675 nu poate fi reprezentată exact în virgulă mobilă binară (IEEE 754); valoarea stocată este puțin mai mică decât 2.675, așa că Python rotunjește în jos.

Dacă ai nevoie de rotunjire exactă pentru calcule financiare, folosește modulul decimal cu un mod de rotunjire explicit:

from decimal import Decimal, ROUND_HALF_UP

result = Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(result)  # 2.68

Folosirea tehnicilor de formatare a șirurilor pentru a rotunji un număr în Python

Tehnicile de formatare a șirurilor sunt utile pentru rotunjirea numerelor la două zecimale, în special atunci când afișezi numărul în ieșire.

Ține minte că atunci când folosești tehnici de formatare a șirurilor în Python pentru a rotunji un număr, rezultatul rotunjit este afișat ca șir, dar numărul original rămâne neschimbat. Dacă faci calcule pe numărul original, acestea se bazează pe valoarea nerotunjită, ceea ce poate duce la rezultate surprinzătoare.

Rotunjirea cu operatorul %

Operatorul % oferă o metodă tradițională de formatare a numerelor la două zecimale. Operatorul % permite crearea de șiruri formatate prin inserarea valorilor în substituenți.

În exemplul de mai jos, f indică faptul că valoarea este un număr în virgulă mobilă, iar .2 specifică zecimalele la care se rotunjește numărul.

# Example number to be rounded
number = 3.14159

# Using the % operator to round to 2 decimal places
formatted_number = "%.2f" % number

print(formatted_number)

# 3.14

Rotunjirea cu str.format()

Metoda str.format() oferă o modalitate mai flexibilă de a gestiona tehnici complexe de rotunjire. Fiindcă folosește substituenți numiți, dezvoltatorii tind să prefere această metodă în locul operatorului %. În exemplul de mai jos, :.2f este folosit între acolade pentru a specifica faptul că numărul este rotunjit la două zecimale. Codul va afișa 3.14.

# Example number to be rounded
number = 3.14159

# Using str.format() to round to 2 decimal places
formatted_number = "{:.2f}".format(number)

print(formatted_number)

# 3.14

Rotunjirea cu f-strings (Python 3.6+)

F-strings au apărut în Python 3.6 și sunt acum metoda preferată pentru a încorpora valori în șiruri. Sintaxa f-string este deosebit de clară pentru rotunjire: obții formatarea pentru afișare într-o singură linie, fără apel separat. Codul de mai jos afișează 14.68.

# Example number to be rounded
number = 14.67856

# Using f-strings to round to 2 decimal places
formatted_number = f"{number:.2f}"

print(formatted_number)

# 14.68

Folosirea format() pentru a rotunji un număr în Python

Funcția încorporată format() primește o valoare și o specificație de format și întoarce un șir formatat. Spre deosebire de str.format(), transmiți numărul direct în loc să îl încorporezi într-un șablon de șir. Codul de mai jos afișează 345.69.

# Example number to be rounded
number = 345.68776

# Using the built-in format() to round to 2 decimal places
formatted_number = format(number, ".2f")

print(formatted_number)

# 345.69

Folosirea altor module pentru a rotunji un număr în Python

Dincolo de Python de bază, există multe alte module pe care le poți folosi pentru a rotunji numere în Python. Îți voi arăta trei exemple proeminente: math, decimal și NumPy.

Rotunjirea folosind modulul math

Modulul math nu oferă funcții care să rotunjească direct numerele la un anumit număr de zecimale. Totuși, poți combina modulul math cu alte operații aritmetice pentru a rotunji un număr la două zecimale.

Funcția math.floor() este folosită pentru a rotunji în jos un număr la întregul cel mai apropiat. Pentru a rotunji în jos un număr la două zecimale, îl înmulțești cu 100, aplici funcția math.floor() și împarți la 100. Codul de mai jos afișează 3.14.

# Import math module
import math

# Example number to be rounded
number = 3.14159

# Using math.floor() to round down to 2 decimal places
rounded_down = math.floor(number * 100) / 100

print(rounded_down)

# 3.14

În mod similar, funcția math.ceil() rotunjește în sus un număr la întregul cel mai apropiat. Pentru a rotunji în sus un număr la două zecimale, înmulțește-l cu 100, aplică funcția math.ceil() și împarte la 100. Codul de mai jos afișează 3.15.

# Import the math module
import math

# Example number to be rounded
number = 3.14159

# Using math.ceil() to round up to 2 decimal places
rounded_up = math.ceil(number * 100) / 100

print(rounded_up)

# 3.15

Rotunjirea folosind modulul decimal

Modulul decimal din Python este util pentru rotunjirea numerelor float la zecimale precise folosind metoda .quantize(). În exemplul de mai jos, setăm precizia la 0.01 pentru a indica faptul că vrem să rotunjim numărul la două zecimale.

# Import the decimal module
from decimal import Decimal

# Example number to be rounded
number = Decimal("18.73869")

# Define the rounding precision to 2 decimal places
precision = Decimal('0.01')

# Using the quantize method with ROUND_UP 
# to round the number up to 2 decimal places
rounded_number = number.quantize(precision)

print(rounded_number)

# 18.74

Dacă cauți un comportament specific de rotunjire în sus, consultă cel mai nou tutorial al nostru despre Cum să rotunjești în sus un număr în Python pentru a afla mai multe despre folosirea modulelor math și decimal și alte tehnici pentru a te asigura că numărul se rotunjește întotdeauna în sus, nu în jos. Dacă vrei să înțelegi mai bine transformarea datelor, parcurge traseul nostru de carieră Data Analyst with Python pentru a-ți dezvolta abilitățile analitice.

Rotunjirea folosind NumPy

Când lucrezi cu tablouri în NumPy, folosește np.round() pentru a rotunji fiecare element deodată. Este mai rapid și mai lizibil decât să parcurgi valorile manual.

import numpy as np

prices = np.array([1.2345, 9.8765, 3.14159])
rounded_prices = np.round(prices, 2)

print(rounded_prices)
# [1.23 9.88 3.14]

np.round() aplică aceeași regulă de rotunjire bancară ca funcția încorporată round() din Python. Metoda .round() funcționează la fel pe DataFrame-uri și Serii pandas:

import pandas as pd

df = pd.DataFrame({"price": [1.2345, 9.8765, 3.14159]})
df["price_rounded"] = df["price"].round(2)

print(df)
#      price  price_rounded
# 0   1.2345           1.23
# 1   9.8765           9.88
# 2  3.14159           3.14

Pentru o privire de ansamblu asupra transformării datelor cu pandas, vezi tutorialul nostru pandas.

Când să folosești fiecare metodă de rotunjire în Python

Iată un ghid rapid pentru alegerea abordării potrivite:

Metodă Cel mai potrivit pentru Schimbă valoarea? Întoarce
round(x, 2) Aritmetică generală Da float
f"{x:.2f}" Afișare / printare Nu str
str.format() Afișare / printare Nu str
% operator Afișare / printare (legacy) Nu str
format(x, ".2f") Afișare / valoare unică Nu str
math.floor() / ceil() Întotdeauna în jos / în sus Da float
Decimal.quantize() Financiar / zecimal exact Da Decimal
np.round(arr, 2) Tablouri NumPy Da ndarray

Câteva reguli practice pentru a ghida alegerea:

  • Doar afișezi un număr? Folosește un f-string (f"{x:.2f}"). O singură linie, fără importuri, fără efecte asupra valorii originale.

  • Faci aritmetică cu rezultatul? Folosește round(x, 2). Întoarce un float cu care poți continua calculele.

  • Cod financiar sau contabil? Folosește Decimal.quantize(). Surprizele de precizie la float (round(2.675, 2) == 2.67) nu apar cu modulul decimal.

  • Ai nevoie să mergi mereu în sus sau mereu în jos? Folosește math.ceil() sau math.floor(). Ignoră complet regulile de rotunjire.

  • Lucrezi cu un tablou NumPy sau o coloană pandas? Folosește np.round(arr, 2) sau series.round(2). Ambele procesează întreaga colecție dintr-o dată.

  • Mentenanță pe cod vechi? Operatorul % încă funcționează, dar f-strings l-au înlocuit în Python 3.6 — preferă-le în codul nou.

Gânduri finale

Rotunjirea numerelor la două zecimale este o tehnică importantă pentru o precizie mai bună în calculele financiare și științifice. În acest articol, am discutat diferitele metode de rotunjire a numerelor la două zecimale, inclusiv funcții încorporate, tehnici de formatare a șirurilor și modulul math. Este important să înțelegi și să alegi metoda potrivită în funcție de cerințele specifice, precum precizia și stilul de formatare. Te încurajez să exersezi diferitele metode folosind exemple variate pentru a înțelege mai bine ce se potrivește cel mai bine cazului tău.

Dacă vrei să îți avansezi abilitățile în Python, consultă traseul nostru de abilități Python Programming, care acoperă funcții, decoratori și tipare avansate în Python. Traseul nostru de carieră Python Developer este, de asemenea, conceput pentru a te ajuta să îți dezvolți abilitățile de dezvoltator în timp ce înveți structuri de date și algoritmi mai avansați.

Întrebări frecvente

Care este cel mai simplu mod de a rotunji un număr la două zecimale în Python?

Cel mai simplu mod de a rotunji un număr la două zecimale este să folosești funcția încorporată round().

De ce un număr se rotunjește la cel mai apropiat întreg când folosesc funcția round()?

Metoda implicită a funcției round() este round half to even. Pentru a rotunji un număr la două zecimale, trebuie să furnizezi al doilea argument ca 2 în funcție, adică round(3.14159, 2).

Cum este folosită funcția format() pentru a rotunji un număr la două zecimale?

Funcția format() este folosită pentru a rotunji un număr la numărul specificat de zecimale și a-l afișa într-un șir formatat.

Ce este round half to even?

Metoda round half to even sau rotunjirea bancară implică rotunjirea unui număr exact la jumătatea distanței dintre doi întregi către întregul par cel mai apropiat.

Oferă modulul math rotunjirea unui număr la două zecimale în Python?

Poți folosi funcțiile math.floor() și math.ceil() doar împreună cu alte operații aritmetice pentru a rotunji un număr la un număr specificat de zecimale.

De ce round(2.675, 2) returnează 2.67 în loc de 2.68?

Aceasta este o problemă de precizie a numerelor în virgulă mobilă. Valoarea 2.675 nu poate fi reprezentată exact în virgulă mobilă binară (IEEE 754); valoarea stocată este puțin mai mică decât 2.675, astfel încât Python rotunjește în jos la 2.67.

Pentru a evita acest lucru în cod financiar, folosește modulul decimal cu un mod explicit de rotunjire: Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) întoarce 2.68, așa cum te-ai aștepta.

Cum rotunjesc toate valorile dintr-un DataFrame pandas la 2 zecimale?

Folosește metoda .round() pe un DataFrame sau o Series. Pentru a rotunji o singură coloană: df["price"] = df["price"].round(2). Pentru a rotunji toate coloanele numerice deodată: df = df.round(2).

Subiecte

Învață Python cu DataCamp

course

Introducere în Python

4 oră
6.9M
Stăpânește bazele analizei datelor cu Python în doar patru ore. Acest curs online va prezenta interfața Python și va explora pachete populare.
Vezi detaliiRight Arrow
Începeți cursul
Vezi mai multRight Arrow