Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我可以将数字变量声明为double,但仍然使用.nextInt()?_Java_Primitive_Primitive Types - Fatal编程技术网

Java 为什么我可以将数字变量声明为double,但仍然使用.nextInt()?

Java 为什么我可以将数字变量声明为double,但仍然使用.nextInt()?,java,primitive,primitive-types,Java,Primitive,Primitive Types,好吧,我对编码还不熟悉,所以我对每件事都不熟悉。我的问题是: 为什么会这样;即使名称为.nextInt;,也将处理double double max = scan.nextInt(); 这是可行的,但为什么呢?如果你仔细观察一下,你会发现它会像方法名所示返回int 在您的特定示例中,从返回的值被加宽为double,因为每个int都可以放入double类型。句点后的内容。nextInt称为方法或函数 现在谈谈你的实际问题: nextInt方法将返回一个整数,该整数随后将在内部转换为double,

好吧,我对编码还不熟悉,所以我对每件事都不熟悉。我的问题是:

为什么会这样;即使名称为.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。