Какие существуют в Java стандартные средства для округления чисел?
- Пример округления: 3.49 - 3, 3.50 - 4, 3.51 - 4.
Math.ceil(n) — возвращает наименьшее целое число, которое больше или равно
аргумента n.Math.floor(n) — возвращает наибольшее целое число,
которое меньше или равно аргументу n.Math.round(n) — возвращает
целое число, ближайшее к аргументу n (округляет n).Пример с ceil:
int result = (int)Math.ceil(3.8);
System.out.println(result); //4
int result = (int)Math.ceil(3.3);
System.out.println(result); //4
Пример с floor:
int result = (int)Math.floor(3.8);
System.out.println(result); //3
int result = (int)Math.floor(3.3);
System.out.println(result); //3
Пример с round:
int result = (int)Math.round(3.8);
System.out.println(result); //4
int result = (int)Math.round(3.3);
System.out.println(result); //3
В годы моей юности, когда не было таких умных методов round/ceil/floor, округление делали примерно так:
double x=8.3;
int i;
i=(int )(x+0.5); //round
i=(int )(x); //floor
i=(int )(x+1); //ceil
ceil
– Barmaley
May 15 '17 at 09:32
Метод Math.round() в Java возвращает long или int (целое число), ближайшее к вещественному числу, double или float, аргумента. Иными словами - осуществляет округление до целых чисел.
double d1 = 1.49;
double d2 = 1.50;
Math.round(d1);
Math.round(d2);
И результат:
d1 = 1
d2 = 2
вот правильный код:
double b=6.7;
float c=4.5f;
double h=4.1;
System.out.println(Math.round(h));//вывод на экран ЦЕЛОЧИСЛЕННОЕ значение типа int к блажайшему числу(4.5 будет иметь число 5)
System.out.println(Math.floor(c));/*округляет число типа float вниз до ближайшего в тип double*/
System.out.print(Math.ceil(h));//округляет число типа double вверх в тип double