値が整数かどうかを確認する必要があります。私はこれを見つけました:入力値が整数であるか浮動小数点であるかを確認する方法は?、しかし、私が間違っていなければ、値自体が実際に。double
であっても、そこにある変数はまだ型のままです。integer
12 に答える
入力値を integer 以外の数値形式にすることができる場合は、
if (x == (int)x)
{
// Number is integer
}
文字列値が渡される場合はInteger.parseInt(string_var).
、変換に失敗した場合に備えて try catch を使用してエラー処理を確認してくださいを使用します。
double/float/floating point の数値があり、それが整数かどうかを確認したい場合。
public boolean isDoubleInt(double d)
{
//select a "tolerance range" for being an integer
double TOLERANCE = 1E-5;
//do not use (int)d, due to weird floating point conversions!
return Math.abs(Math.floor(d) - d) < TOLERANCE;
}
文字列があり、それが整数かどうかを確認したい場合。Integer.valueOf()
できれば、結果を破棄しないでください。
public boolean isStringInt(String s)
{
try
{
Integer.parseInt(s);
return true;
} catch (NumberFormatException ex)
{
return false;
}
}
何かが Integer オブジェクトであるかどうかを確認したい場合 (したがって、 をラップしますint
):
public boolean isObjectInteger(Object o)
{
return o instanceof Integer;
}
多分この方法で試してください
try{
double d= Double.valueOf(someString);
if (d==(int)d){
System.out.println("integer"+(int)d);
}else{
System.out.println("double"+d);
}
}catch(Exception e){
System.out.println("not number");
}
ただし、整数の範囲外のすべての数値( "-1231231231231231238"など)はdoubleとして扱われます。その問題を取り除きたい場合は、この方法で試すことができます
try {
double d = Double.valueOf(someString);
if (someString.matches("\\-?\\d+")){//optional minus and at least one digit
System.out.println("integer" + d);
} else {
System.out.println("double" + d);
}
} catch (Exception e) {
System.out.println("not number");
}
演算子を使用してinstanceof
、値が整数かどうかを判断する必要があります。
オブジェクト object = your_value;
if(object instanceof Integer) {
Integer integer = (Integer) object ;
} else {
//your value isn't integer
}
文字列が整数かどうかを確認する関数は次のとおりです。
public static boolean isStringInteger(String number ){
try{
Integer.parseInt(number);
}catch(Exception e ){
return false;
}
return true;
}
最初にそれが数字かどうかを確認する必要があります。その場合は、Math.Round
メソッドを使用できます。結果と元の値が等しい場合、それは整数です。
文字列に整数を表す数字が含まれているかどうかを確認するには、 を使用できますInteger.parseInt()
。
double に整数になる値が含まれているかどうかを確認するには、Math.floor()
またはを使用できますMath.ceil()
。
これは機能します:
int no=0;
try
{
no=Integer.parseInt(string);
if(string.contains("."))
{
if(string.contains("f"))
{
System.out.println("float");
}
else
System.out.println("double");
}
}
catch(Exception ex)
{
Console.WriteLine("not numeric or string");
}