首先,请参阅此代码:
package test;
import java.util.*;
public class hasnext {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println(s.hasNextDouble());
s.nextInt();
}
}
如果我输入整数,我将得到真实的ex:5
如果我输入实数,我将得到真实然后崩溃前1.5
该方法给出的是double类型或整数的数量是正确的以及为什么?
答案 0 :(得分:1)
来自the javadoc for Scanner.hasNextDouble():
如果此扫描仪输入中的下一个标记可以,则返回true 使用nextDouble()方法将解释为double值。
整数可以解释为double。例如,在Java中,您可以将整数转换为double,而不会丢失信息。
显然,double不能解释为整数。最有可能的原因是,在大多数情况下,double会通过从double转换为整数来丢失信息。