提问人:A_Pickle 提问时间:10/23/2023 最后编辑:Hovercraft Full Of EelsA_Pickle 更新时间:10/23/2023 访问量:46
如果 int 已经声明/初始化为 double,为什么需要在 print 语句中将 int 转换为 double 变量?[复制]
Why Do I Need to Cast Int To A Double Variable In A Print Statement If Its Already Declared/Initialized As A Double? [duplicate]
问:
我正在尝试通过 for 循环遍历 Java 中的数组,但由于某种原因,如果我转换“int”,它只会打印我列表中的双精度。否则,即使一切都是双精度,我也会得到“类型不匹配:无法将双精度转换为整数”,并且我从未尝试过将任何数字转换为整数。我是一个彻头彻尾的编程乞丐,所以非常感谢任何和所有的帮助。代码如下:
package MyProgram1;
import cs1.Keyboard;
public class MyProgram1{
public static void main(String[] args){
double [] array = {1.0,2.0,4.0,2.5,5.0};
for (double index = 0.0; index <= array.length-1.0; index++){
\\The line below is what results in the error
System.out.println(array[index]);
}
}
}
我看到一个建议(在eclipse中),上面写着“add cast to int”,这是看起来像的:
package MyProgram1;
import cs1.Keyboard;
public class MyProgram1{
public static void main(String[] args){
double [] array1 = {1.0,2.0,4.0,2.5,5.0};
for (double index = 0.0; index <= array1.length-1.0; index++)
System.out.println(array1[(int)index]);
}
}
完美工作,打印的内容如下:
1.0
2.0
4.0
2.5
5.0
我的问题是为什么?为什么我需要铸造它,当我这样做时,为什么所有东西都打印成双精度?结果不应该是整数吗?
同样,任何澄清都是值得赞赏的。
答:
0赞
Em Ae
10/23/2023
#1
问题是你正在用“double”变量遍历你的数组。数组索引为整数类型
将您的“index”变量类型更改为 int,它应该没问题,即,
public static void main(String[] args){
double [] array = {1.0,2.0,4.0,2.5,5.0};
for (int index = 0; index <= array.length-1; index++){
System.out.println(array[index]);
}
}
还有其他方法可以遍历数组。HEre 是一个你不需要特殊索引的地方。相反,您需要一个变量(与数组类型相同)来保存该值,即,
for (double val : array) {
System.out.println(val);
}
评论
double