我正在尝试创建一个程序,它从用户那里获取两倍的值,并将它们存储在数组中,然后再对它们进行分割和四舍五入。然而,我在尝试创建双数组时不断收到错误消息。
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]);
}
我在声明数组时得到的错误是:
不兼容类型:从双精度到整数的有损转换
a[i] and b[i] expect int type, but you supply double to it
Should be
for (int i = 0; i < a.length; i++) {
和
double n = sc.nextDouble();
should be changed to:
int n = sc.nextInt();
首先是变量< code>n,定义为< code > double n = sc . next double();是一个双精度值。你不能创建一个长度为double的数组,因为这样你可能会得到半个元素。想象一个4.5元素长的数组!
定义n
int n = sc.nextInt()
或
int n = (int)sc.next双();
其次,< code>i
也是双精度的!这样定义它:
<代码>用于(int i=0;i
这样编译器就知道i
是一个整数,不必担心需要在双
index处检索元素,就像第4.2个元素一样!(它不存在,也不应该存在)
这是固定的代码:
int n = sc.nextInt();
double a[] = new double[n];
double b[] = new double[n];
double roundedValues[] = new double[n];
for (int 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]);
}
问题内容: 在Golang中如何导出返回双精度数组的函数。现在以前似乎可以返回“运行时错误:cgo结果具有Go指针”的方式: 问题答案: 为了安全地将指针存储在C中,它指向的数据必须在C中分配。
我正在尝试编写一个程序来计算您的班级成绩。它考虑了测验,考试,程序等的价值。 我在处理这部分代码时遇到问题。我对为什么我的代码无法编译感到困惑。我正在尝试创建一个双精度数组类型,因为我们为测验分数输入的值必须是双精度值。但是,当我编译程序时,我不断收到此错误,该错误显示“不兼容的类型:从双精度到int的可能有损转换”。我不确定为什么会发生这种情况,并且想知道是否有人可以提供一些见解。谢谢!
问题内容: 我想将一个脚本加载到redis中,该脚本将导出将来执行的脚本将依赖的函数,但是尝试定义全局函数失败,对于全局变量也是如此: 如何定义全局函数和变量? 问题答案: 查看文件scripting.c中的源代码 的doc字符串表示意图是将常见错误通知脚本作者(不使用)。 看来这不是安全功能,所以我们有两个解决方案: 可以删除此保护: 或使用:
问题内容: 好的。我一直在脑海里猛击了大约2个小时,现在想弄清楚为什么世界上告诉我0。或者与此相关的任何其他组合,它只是截断了小数,我只是不知道为什么。 问题答案: 364/365执行整数除法(截断小数点)。 尝试强制其执行浮点除法。 就像是: 由于其中一个操作数不是整数,因此也可以使用。
为什么此代码引发此异常: 线程“main”java.lang.ClassCastException:java.lang.Integer无法强制转换为java.lang.Double 而这个,运行良好: 两者都是尝试将整数转换为双精度,对吗?