【发布时间】:2017-03-26 09:35:33
【问题描述】:
我需要编写一个方法,当传递一个双精度数组 arr 和一个 int 值 target 时,返回整数部分的第一次出现的项目的索引等于目标。
例如,如果 arr = {1.2, 3.6, 5.2, 9.2, 5.6} 和 target = 5,则目标必须返回 2,如果数组为 null,则返回 -1。
到目前为止我的代码是
public static int yes(double[]arr, int target){
if (arr == null){
return -1;
}
for (int i= 0; i < arr.length(); i++){
if(arr[i] == target)
return i;
}
return 1;
}
还有一个编译错误,我只是不明白 double 和 int 之间的转换?谢谢
【问题讨论】:
-
Double 是十进制数(无论如何都简化了)。整数是整数,向下舍入(截断)。比较是 5.2 与 5 相同不会返回 true。您可以通过执行以下操作将双精度转换为 int:
(int) arr[i] -
虽然这段代码非常简单,但下次您寻求有关编译器错误的帮助时,您应该提供 (a) 错误消息和 (b) 它出现的行。