Преобразование double в int на Java — все способы с примерами
Обратная задача: превратить дробное число типа double в целое. Здесь возможна потеря дробной части — рассмотрим три способа.
Пример 1: double в int через явное приведение
Просто приводим тип через (int).
class Main {
public static void main(String[] args) {
// create double variables
double a = 23.78D;
double b = 52.11D;
// convert double into int
// using typecasting
int c = (int)a;
int d = (int)b;
System.out.println(c); // 23
System.out.println(d); // 52
}
}
Вывод:
23
52
Это сужающее преобразование — дробная часть просто отбрасывается. Поэтому 23.78 превращается в 23, а 52.11 — в 52.
Предупреждение
Этот способ работает, только пока значение double не превышает максимум int (2147483647). Иначе будут потери данных.
Пример 2: double в int через Math.round()
Если нужно округлять, а не просто отбрасывать дробную часть, используем Math.round().
class Main {
public static void main(String[] args) {
// create double variables
double a = 99.99D;
double b = 52.11D;
// convert double into int
// using typecasting
int c = (int)Math.round(a);
int d = (int)Math.round(b);
System.out.println(c); // 100
System.out.println(d); // 52
}
}
Вывод:
100
52
Метод Math.round() возвращает значение типа long — округлённое до ближайшего целого. Затем мы приводим его к int. Поэтому 99.99 округляется до 100, а не отбрасывается до 99.
Пример 3: преобразование объекта Double в int
Если у нас объект класса-обёртки Double, используем метод intValue().
class Main {
public static void main(String[] args) {
// create an instance of Double
Double obj = 78.6;
// convert obj to int
// using intValue()
int num = obj.intValue();
// print the int value
System.out.println(num); // 78
}
}
Вывод:
78
Метод intValue() достаёт целочисленное значение из объекта Double. Дробная часть отбрасывается — 78.6 превращается в 78.