Java 为什么我可以将数字变量声明为double,但仍然使用.nextInt()?
好吧,我对编码还不熟悉,所以我对每件事都不熟悉。我的问题是: 为什么会这样;即使名称为.nextInt;,也将处理doubleJava 为什么我可以将数字变量声明为double,但仍然使用.nextInt()?,java,primitive,primitive-types,Java,Primitive,Primitive Types,好吧,我对编码还不熟悉,所以我对每件事都不熟悉。我的问题是: 为什么会这样;即使名称为.nextInt;,也将处理double double max = scan.nextInt(); 这是可行的,但为什么呢?如果你仔细观察一下,你会发现它会像方法名所示返回int 在您的特定示例中,从返回的值被加宽为double,因为每个int都可以放入double类型。句点后的内容。nextInt称为方法或函数 现在谈谈你的实际问题: nextInt方法将返回一个整数,该整数随后将在内部转换为double,
double max = scan.nextInt();
这是可行的,但为什么呢?如果你仔细观察一下,你会发现它会像方法名所示返回int
在您的特定示例中,从返回的值被加宽为double,因为每个int都可以放入double类型。句点后的内容。nextInt称为方法或函数 现在谈谈你的实际问题: nextInt方法将返回一个整数,该整数随后将在内部转换为double,因为如果您通过说double max显式地请求,则每个int也是double=
另请参见:正如其他人所指出的,这是一个示例-您可以将一个int分配给double,它将自动进行类型转换,并为您更改类型 这里的基本思想是,将int赋值给double实际上没有什么严重的危害,只是消耗了稍微多一些的内存 请注意,相反的说法是不正确的——将double转换为int可能会有严重的伤害,因此从double转换为int没有隐含的转换。scan.nextInt是int;整数可以扩大到两倍int到long、float或double。