【发布时间】:2014-04-16 10:24:53
【问题描述】:
下面是代码:
Scanner scan = new Scanner(System.in);
String input = scan.next();
try{
double isNum = Double.parseDouble(input);
if(isNum == Math.floor(isNum)) {
System.out.println("Input is Integer");
//enter a double again
}else {
System.out.println("Input is Double");
//break
}
} catch(Exception e) {
if(input.toCharArray().length == 1) {
System.out.println("Input is Character");
//enter a double again
}else {
System.out.println("Input is String");
//enter a double again
}
}
取自这里:how to check the data type validity of user's input (Java Scanner class)
但是,当我输入 1.0 或 0.0 时,它仍然被认为是整数,1.0 不被认为是双精度数吗?
请大家帮忙,谢谢!
【问题讨论】:
-
我建议将输入扫描为字符串,然后尝试将其解析为 int,如果成功,则为 int。如果不是,则尝试将其解析为浮点数
-
在解析之前可以检查是否有字符点(.)来判断它是双精度还是整数
-
@maxx777 输入是字符串解析为双精度...
标签: java