if ((variable == Math.floor(variable)) && !Double.isInfinite(variable)) {
// integer type
}
Проверяет, совпадает ли округленное значение double с двойным.
Ваша переменная может иметь значение типа int или double, а Math.floor(variable)
всегда имеет значение типа int, поэтому, если ваша переменная равна Math.floor(variable)
, тогда она должна иметь значение int.
Это также не работает, если значение переменной бесконечно или отрицательно бесконечно, следовательно, добавляя «пока переменная не бесконечна» к условию.