【发布时间】:2017-07-09 20:39:04
【问题描述】:
我正在尝试创建一个程序,该程序从用户那里获取双精度值并将它们存储在数组中,然后再对它们进行除法和四舍五入。但是,我在尝试创建双数组时不断收到错误消息。
double n = sc.nextDouble();
double a[] = new double[n];
double b[] = new double[n];
double roundedValues[] = new double[n];
for (double i = 0; i < a.length; i++) {
System.out.println("Please enter the values you would like to divide as pairs of two numbers: ");
// Read pair and store it inside i-th position of a and b arrays
System.out.println("Enter first number: ");
a[i] = sc.nextDouble();
System.out.println("Enter second number you would like to divide by: ");
b[i] = sc.nextDouble();
roundedValues[i] = Math.round(a[i] / b[i]);
}
我在声明数组的地方遇到的错误是:
不兼容的类型:从 double 到 int 的可能有损转换
【问题讨论】:
-
双倍元素的数组是什么意思?我从未见过包含 3.2734 个元素的数组。
-
为什么使用 double 作为计数器 (i)?使用整数。
-
我已将循环中的控制变量更改为 int 并解决了该问题,但我在声明数组的行上仍然遇到相同的错误。你能帮我理解为什么吗?我想在我创建的数组中存储十进制数的值。谢谢
-
查看 Eran 的评论。您仍在使用“双”个元素创建 a[] 和 b[] 。括号中的任何内容都必须是 int。
-
好的。我想在我创建的数组中存储十进制数的值,因此我尝试将数组初始化为双精度数。我想我明白我哪里出错了,我认为 int 负责可以存储在数组中的值的类型。有没有办法可以在数组中存储 double 类型的值?