特にJavaでは、adouble
が整数であるかどうかをどのように判断できますか?明確にするために、doubleに実際には分数や小数が含まれていないことをどのように判断できるかを知りたいと思います。
私は本質的に浮動小数点数の性質に関心があります。私が考えた方法(およびGoogleで見つけた方法)は、基本的に次の形式に従います。
double d = 1.0;
if((int)d == d) {
//do stuff
}
else {
// ...
}
私は確かに浮動小数点数とその動作の専門家ではありませんが、格納は数値の近似値double
のみを格納するため、条件は一部の時間(おそらく大部分の時間)にしか入力されないという印象を受けます)。しかし、システムに値がどのように格納されているかに関係なく、100%の時間で機能することが保証されている方法を探しています。if()
double
これは可能ですか?もしそうなら、どのようにそしてなぜ?