【问题标题】:If statement that ensures round number [duplicate]If语句确保整数[重复]
【发布时间】:2015-10-02 19:59:26
【问题描述】:

我可以像下面这样在 Java 中做一个 if 语句来确保一个数字是整数吗?

if(some number int)

【问题讨论】:

    标签: java if-statement int


    【解决方案1】:

    是的

    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。因此,如果余数r0,则n = q 是某个整数q,那么你的测试数n 是一个整数。

    【讨论】:

      【解决方案2】:

      我猜你想检查一个数字是否是一个整数:

      public boolean isObjectInteger(Object o) { return o instanceof Integer; }
      

      应该做的工作。

      【讨论】:

      • 这个检查对象是不是Integer类,我觉得这不是他想要的……
      【解决方案3】:

      或者,使用Math.rint:

      if(x == Math.rint(x))
      

      【讨论】:

      • 谢谢大家,对我的第一次解释感到抱歉。
      猜你喜欢
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多