1. ホーム
  2. java

[解決済み] doubleが整数であるかどうかをテストする方法

2022-02-08 03:20:26

質問

このようなことは可能でしょうか?

double variable;
variable = 5;
/* the below should return true, since 5 is an int. 
if variable were to equal 5.7, then it would return false. */
if(variable == int) {
    //do stuff
}

コードはおそらくそのようにはいかないと思いますが、どのように が行います。 ということでしょうか?

解決方法は?

if ((variable == Math.floor(variable)) && !Double.isInfinite(variable)) {
    // integer type
}

これは、切り捨てた値がdoubleと同じかどうかをチェックするものです。

変数はint型かdouble型の値で Math.floor(variable) は常にint型の値を持つので、もし変数が Math.floor(variable) であれば、それはint型の値でなければならない。

また、変数の値が無限大や負の無限大の場合はうまくいかないので、条件に「変数が無限大でない限り」を追加している。