Ce face Math.floor
Math.floor(x) returnează cel mai mare număr întreg care nu depășește x: 7.9 → 7.0. Math.ceil(x) returnează cel mai mic întreg care nu este sub x: 7.1 → 8.0. Pentru numere negative, „în jos” înseamnă mai departe de zero: floor(-2.3) este -3.0.
Ambele returnează double, chiar dacă valoarea este întreagă. Pentru un int folosește conversia (int) Math.ceil(x). Atenție: conversia directă (int) x taie zecimalele spre zero, ceea ce diferă de floor la numerele negative.
Parametri
| Parametru | Descriere |
|---|---|
a |
Numărul rotunjit. |
Ce returnează
Un double cu valoare întreagă.
Exemple
Exemplul 1: floor, ceil și conversia (int)
public class Main {
public static void main(String[] args) {
double[] valori = {7.9, 7.1, -2.3, 5.0};
for (double v : valori) {
System.out.println(v + ": floor=" + Math.floor(v) + ", ceil=" + Math.ceil(v) + ", (int)=" + (int) v);
}
}
}
Rezultat
7.9: floor=7.0, ceil=8.0, (int)=7
7.1: floor=7.0, ceil=8.0, (int)=7
-2.3: floor=-3.0, ceil=-2.0, (int)=-2
5.0: floor=5.0, ceil=5.0, (int)=5
Exemplul 2: Câte autocare sunt necesare
Chiar și un singur elev în plus cere un autocar în plus, deci rotunjim în sus.
public class Main {
public static void main(String[] args) {
int elevi = 125;
int locuri = 50;
int autocare = (int) Math.ceil((double) elevi / locuri);
System.out.println("Autocare: " + autocare);
int pline = (int) Math.floor((double) elevi / locuri);
System.out.println("Autocare complet ocupate: " + pline);
}
}
Rezultat
Autocare: 3
Autocare complet ocupate: 2
Greșeli frecvente
- Scrii
Math.ceil(elevi / locuri)cu douăint-uri: împărțirea întreagă se face întâi (125 / 50 = 2), iarceil(2)rămâne 2. Convertește ladoubleînainte sau foloseșteMath.ceilDiv. - Folosești
(int) xca rotunjire în jos pentru numere negative:(int) -2.3dă -2, nu -3.
Comenzi înrudite
Math.round: round() rotunjește la cel mai apropiat întreg (.5 în sus); rint() rotunjește .5 spre numărul par și returnează double.Math.floorDiv: Împărțire întreagă rotunjită în jos (floorDiv) sau în sus (ceilDiv), cu restul potrivit (floorMod, ceilMod).Math: Clasa cu funcții matematice gata făcute: rotunjiri, puteri, radicali, trigonometrie, minim/maxim și calcule întregi sigure.