Existe-t-il une méthode ou un moyen rapide de vérifier si un nombre est un entier (appartient au champ Z) en Java?
J'ai pensé à peut-être le soustraire du nombre arrondi, mais je n'ai trouvé aucune méthode qui puisse m'aider à résoudre ce problème.
Où devrais-je vérifier? Api Integer?
Rapide et sale...
if (x == (int)x)
{
...
}
edit: Cela suppose que x est déjà sous une autre forme numérique. Si vous avez affaire à des chaînes, examinez Integer.parseInt
.
Un exemple de plus :)
double a = 1.00
if(floor(a) == a) {
// a is an integer
} else {
//a is not an integer.
}
Dans cet exemple, ceil peut être utilisé et avoir exactement le même effet.
si vous parlez de valeurs à virgule flottante, vous devez faire très attention en raison de la nature du format.
la meilleure façon de le faire consiste à choisir une valeur epsilon, par exemple, 0.000001f, puis à faire quelque chose comme ceci:
boolean nearZero(float f)
{
return ((-episilon < f) && (f <epsilon));
}
puis
if(nearZero(z-(int)z))
{
//do stuff
}
essentiellement, vous vérifiez si z et le cas entier de z ont la même amplitude avec une certaine tolérance. Cela est nécessaire car les flottants sont intrinsèquement imprécis.
NOTE, CEPENDANT: cela va probablement casser si la magnitude de vos flottants est supérieure à Integer.MAX_VALUE
(2147483647), et vous devez savoir qu’il est nécessairement impossible de vérifier l’intégrité des flottants supérieurs à cette valeur.
if((number%1)!=0)
{
System.out.println("not a integer");
}
else
{
System.out.println("integer");
}
Avec Z, je suppose que vous voulez dire entiers, c’est-à-dire 3, -5,77 et non 3,14, 4,02 etc.
Une expression régulière peut aider:
Pattern isInteger = Pattern.compile("\\d+");
Vérifier si la fonction ceil et la fonction floor donnent la même valeur
static boolean isInteger(int n)
{
return (int)(Math.ceil(n)) == (int)(Math.floor(n));
}
change x en 1 et la sortie est un entier, sinon ce n'est pas un entier. Add to count
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);
}
int x = 3;
if(ceil(x) == x) {
System.out.println("x is an integer");
} else {
System.out.println("x is not an integer");
}
/**
* 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.
}