Ce face Math.round
Math.round(x) rotunjește la cel mai apropiat număr întreg. Când partea zecimală este exact .5, rotunjește în sus (spre plus infinit): 2.5 → 3, dar -2.5 → -2. Pentru double returnează un long, iar pentru float un int.
Math.rint(x) rotunjește tot la cel mai apropiat întreg, dar la .5 alege numărul par (rotunjirea „bancherului”): 2.5 → 2.0, 3.5 → 4.0. Returnează un double.
Pentru a rotunji la două zecimale cu round, înmulțești cu 100, rotunjești și împarți la 100.0. Pentru bani, unde fiecare ban contează, folosește BigDecimal cu setScale.
Parametri
| Parametru | Descriere |
|---|---|
a |
Numărul rotunjit. |
Ce returnează
round: long (sau int pentru float). rint: double cu valoare întreagă.
Exemple
Exemplul 1: round și rint pe aceleași valori
public class Main {
public static void main(String[] args) {
double[] valori = {2.4, 2.5, 3.5, -2.5, -2.6};
for (double v : valori) {
System.out.println(v + ": round=" + Math.round(v) + ", rint=" + Math.rint(v));
}
}
}
Rezultat
2.4: round=2, rint=2.0
2.5: round=3, rint=2.0
3.5: round=4, rint=4.0
-2.5: round=-2, rint=-2.0
-2.6: round=-3, rint=-3.0
Exemplul 2: Media rotunjită la două zecimale
public class Main {
public static void main(String[] args) {
int[] note = {9, 8, 10, 7, 9, 10};
double suma = 0;
for (int n : note) {
suma += n;
}
double media = suma / note.length;
System.out.println("Media exactă: " + media);
System.out.println("Media: " + Math.round(media * 100) / 100.0);
int notaFinala = (int) Math.round(media);
System.out.println("Nota finală: " + notaFinala);
}
}
Rezultat
Media exactă: 8.833333333333334
Media: 8.83
Nota finală: 9
Greșeli frecvente
- Scrii
int n = Math.round(x);cuxde tipdouble:roundreturneazălong, deci ai nevoie de(int). - Împarți la
100în loc de100.0:Math.round(9.166 * 100) / 100este o împărțire întreagă și dă 9. - Te aștepți ca
Math.round(-2.5)să dea -3: dă -2, pentru că .5 se rotunjește mereu spre plus infinit.
Comenzi înrudite
Math.floor: floor() rotunjește în jos (spre minus infinit), ceil() rotunjește în sus (spre plus infinit); ambele returnează double.Math.max: max() și min() aleg cel mai mare sau cel mai mic dintre două numere; clamp() încadrează o valoare între două limite.String.format: Construiește un șir dintr-un șablon cu %s, %d, %.2f etc.; formatted() face același lucru pe șablon.Math: Clasa cu funcții matematice gata făcute: rotunjiri, puteri, radicali, trigonometrie, minim/maxim și calcule întregi sigure.