Quiero añadir esta respuesta para aportar algo más matemático. También voy a simplificar el proceso utilizando los atajos disponibles en la programación. Todos los ejemplos que utilice serán de código Java, porque es el lenguaje más fácil para mí para explicarlo.
Es correcto decir que x es un entero si el 'floor(x)' es igual a x. Aunque esto es todo lo que se necesitaría en cualquier entorno informático, para demostrar que es matemático se requiere definir adecuadamente qué es realmente un 'floor':
Floor(x) = max { n ∈ Z | n ≤ x }
Para cualquiera que lea esto y se sienta mareado, básicamente significa que el "suelo" de un valor se encuentra recorriendo los enteros ( n ∈ Z ) dado que ( | ) ese entero es menor o igual que x. Y simplemente se busca el mayor (máximo) entero que satisface esto.
Puedes programar esto empezando en el valor entero 0, viendo si es mayor que 'x', y si no, incrementándolo en 1 y comprobando de nuevo. Cuando se ha encontrado el entero más grande, el booleano de la función es respondido por si dicho entero es igual a x. Por supuesto, si el valor que estás comprobando es negativo querrás cambiar esto.
Mira esto en Java, por ejemplo (un tipo de datos 'double' admite decimales; un 'int' no):
public static int floor(double x){
int a = 0;
while( a + 1 <= x ) a++; // (a++ is the same as 'a = a + 1')
return a;
}
public static boolean isInteger(double x){
return (Class.floor(x) == x);
}
Puedes citar todos los símbolos y demás al explicar las funciones, y así es como lo implementarías. El método por el que se obtiene una respuesta no es muy eficiente o útil para los números grandes, pero esto demuestra al menos que se puede hacer con las matemáticas intactas.
Esto no es relevante para el foro de Matemáticas, pero puede que te interese de todos modos. Al convertir un tipo de datos decimales a un tipo de datos enteros, el compilador normalmente 'baja' el decimal para obtener el valor entero. Para simplificar su código (y ahorrar mucho tiempo) puede querer introducir esto:
public static boolean cheatMethod(double x){
return ((int)x == x);
}
Nota: esto no es matemáticamente sólido, ni es probable que funcione en todos los idiomas, ni es relevante para este foro. Está ahí porque es un método sencillo en general para comprobar si un número es un entero.
Citando el razonamiento que hay detrás de la función 'floor()' y adaptándola para números más grandes / negativos puedes demostrar que la función tiene un significado matemático. El cheatMethod() no te hará ganar puntos, pero también funcionará en algunos lenguajes.