如何检查float是否具有整数值

use*_*125 54 java floating-point int rounding

如何检查输入值是整数还是浮点数?

假设312/100 = 3.12,这里我需要检查3.12是浮点数还是整数.

Ale*_*lex 44

你应该检查数字的小数部分是0.使用

x==Math.ceil(x)
Run Code Online (Sandbox Code Playgroud)

要么

x==Math.round(x)
Run Code Online (Sandbox Code Playgroud)

或类似的东西

  • 强制转换“((int) x) == x”是最快的。`x == Math.round(x)` 比 `x == Math.ceil(x)` 更快。模数 `x % 1 == 0` 是最慢的。 (8认同)

Ara*_*ram 22

这个怎么样.使用模运算符

if(a%b==0) 
{
    System.out.println("b is a factor of a. i.e. the result of a/b is going to be an integer");
}
else
{
    System.out.println("b is NOT a factor of a");
}
Run Code Online (Sandbox Code Playgroud)


Pet*_*rey 16

ceil和floor方法将帮助您确定数字是否为整数.

但是,如果要确定数字是否可以由int值表示.

if(value == (int) value)
Run Code Online (Sandbox Code Playgroud)

或长(64位整数)

if(value == (long) value)
Run Code Online (Sandbox Code Playgroud)

或者可以用浮子安全地表示而不会损失精度

if(value == (float) value)
Run Code Online (Sandbox Code Playgroud)

BTW:除非必须,否则不要使用32位浮点数.在99%的情况下,64位双倍是更好的选择.


Her*_*tar 13

if (value == Math.round(value)) {
  System.out.println("Integer");
} else {
  System.out.println("Not an integer");
}
Run Code Online (Sandbox Code Playgroud)


Far*_*ker 12

也:

(value % 1) == 0
Run Code Online (Sandbox Code Playgroud)

会工作!


小智 5

您可以使用 Scanner Class 来查找给定的数字是否可以读取为 Int 或 Float 类型。

 import java.util.Scanner;
 public class Test {
     public static void main(String args[] ) throws Exception {

     Scanner sc=new Scanner(System.in);

     if(sc.hasNextInt())
         System.out.println("This input is  of type Integer");
     else if(sc.hasNextFloat())
         System.out.println("This input is  of type Float");
     else
         System.out.println("This is something else");
     }
}
Run Code Online (Sandbox Code Playgroud)