una - try catch solo numeros java
Comprobando si un nĂºmero es un Integer en Java (9)
// en lenguaje C .. pero el algo es igual
#include <stdio.h>
int main(){
float x = 77.6;
if(x-(int) x>0)
printf("True! it is float.");
else
printf("False! not float.");
return 0;
}
¿Hay algún método o forma rápida de verificar si un número es un Integer (pertenece al campo Z) en Java?
Pensé en tal vez restarlo del número redondeado, pero no encontré ningún método que me ayude con esto.
¿Dónde debo comprobar? Api entero?
Con ZI supongo que te refieres a enteros, es decir, 3, -5,77 no 3.14, 4.02 etc.
Una expresión regular puede ayudar:
Pattern isInteger = Pattern.compile("//d+");
Rápido y sucio...
if (x == (int)x)
{
...
}
editar: Esto se supone que x ya está en otra forma numérica. Si estás tratando con cadenas, busca en Integer.parseInt
.
Si está hablando de valores de punto flotante, debe tener mucho cuidado debido a la naturaleza del formato.
La mejor manera de saber esto es decidir sobre algún valor épsilon, por ejemplo, 0.000001f, y luego hacer algo como esto:
boolean nearZero(float f)
{
return ((-episilon < f) && (f <epsilon));
}
entonces
if(nearZero(z-(int)z))
{
//do stuff
}
esencialmente, está comprobando si z y el caso entero de z tienen la misma magnitud dentro de alguna tolerancia. Esto es necesario porque flotar es inherentemente impreciso.
NOTA: SIN EMBARGO: esto probablemente se romperá si sus flotadores tienen una magnitud mayor que Integer.MAX_VALUE
(2147483647), y debe tener en cuenta que, por necesidad, es imposible verificar la integridad en flotantes por encima de ese valor.
Un ejemplo más :)
double a = 1.00
if(floor(a) == a) {
// a is an integer
} else {
//a is not an integer.
}
En este ejemplo, se puede usar ceil y tener el mismo efecto exacto.
cambie x a 1 y la salida es un entero, de lo contrario no es un entero para sumar números enteros de ejemplo, números decimales, etc.
double x = 1.1;
int count = 0;
if (x == (int)x)
{
System.out.println("X is an integer: " + x);
count++;
System.out.println("This has been added to the count " + count);
}else
{
System.out.println("X is not an integer: " + x);
System.out.println("This has not been added to the count " + count);
}
/**
* Check if the passed argument is an integer value.
*
* @param number double
* @return true if the passed argument is an integer value.
*/
boolean isInteger(double number) {
return number % 1 == 0;// if the modulus(remainder of the division) of the argument(number) with 1 is 0 then return true otherwise false.
}
if((number%1)!=0)
{
System.out.println("not a integer");
}
else
{
System.out.println("integer");
}
int x = 3;
if(ceil(x) == x) {
System.out.println("x is an integer");
} else {
System.out.println("x is not an integer");
}