Ответ 1
Быстрая и грязная...
if (x == (int)x)
{
...
}
edit: Предполагается, что x уже находится в некоторой другой числовой форме. Если вы имеете дело со строками, загляните в Integer.parseInt
.
Есть ли какой-либо метод или быстрый способ проверить, является ли число Integer (принадлежит Z-полю) в Java?
Я думал, что, возможно, вычитал бы его из округленного числа, но я не нашел никакого метода, который поможет мне в этом.
Где я должен проверить? Integer Api?
Быстрая и грязная...
if (x == (int)x)
{
...
}
edit: Предполагается, что x уже находится в некоторой другой числовой форме. Если вы имеете дело со строками, загляните в Integer.parseInt
.
Еще один пример:)
double a = 1.00
if(floor(a) == a) {
// a is an integer
} else {
//a is not an integer.
}
В этом примере можно использовать ceil и иметь тот же эффект.
Если вы говорите о значениях с плавающей запятой, вы должны быть очень осторожны из-за характера формата.
лучший способ, которым я это знаю, - это решить какое-то значение epsilon, скажем, 0,000001f, а затем сделать что-то вроде этого:
boolean nearZero(float f)
{
return ((-episilon < f) && (f <epsilon));
}
затем
if(nearZero(z-(int)z))
{
//do stuff
}
По существу, вы проверяете, имеет ли z и целочисленный случай z то же значение в пределах некоторого допуска. Это необходимо, потому что плавающие по своей сути являются неточными.
ПРИМЕЧАНИЕ. ОДНАКО: это, вероятно, сломается, если ваши поплавки имеют величину больше, чем Integer.MAX_VALUE
(2147483647), и вы должны знать, что по необходимости невозможно проверить интегральность на поплавках выше этого значения.
С Z Предполагаю, что вы имеете в виду целые числа, т.е. 3, -5,77, не 3,14, 4,02 и т.д.
Регулярное выражение может помочь:
Pattern isInteger = Pattern.compile("\\d+");
измените x на 1 и выведите целое число, иначе его не целое число, чтобы подсчитать число целых чисел, десятичные числа и т.д.
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);
}
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");
}
//на языке С... но algo такой же
#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;
}