【发布时间】:2015-10-02 19:59:26
【问题描述】:
我可以像下面这样在 Java 中做一个 if 语句来确保一个数字是整数吗?
if(some number int)
【问题讨论】:
标签: java if-statement int
我可以像下面这样在 Java 中做一个 if 语句来确保一个数字是整数吗?
if(some number int)
【问题讨论】:
标签: java if-statement int
是的
System.out.println(6.0 % 1 == 0);
打印
true
同时
System.out.println(6.1 % 1 == 0);
打印
false
作为JLS specifies 用于浮点数的余数运算:
在其余情况下,既不涉及无穷大,也不涉及零,也不涉及 NaN,被除数 n 除以除数 d 的浮点余数 r 由数学关系 r = n - ( d · q) 其中 q 是一个整数,仅当 n/d 为负时为负,仅当 n/d 为正时为正,并且其大小尽可能大,但不超过 n 和 d 的真数学商的大小.
因此,如果n 是您要测试的数字并且d 是1,则对于某个整数q,余数r 是r = n - q。因此,如果余数r 是0,则n = q 是某个整数q,那么你的测试数n 是一个整数。
【讨论】:
我猜你想检查一个数字是否是一个整数:
public boolean isObjectInteger(Object o) { return o instanceof Integer; }
应该做的工作。
【讨论】:
或者,使用Math.rint:
if(x == Math.rint(x))
【讨论】: