Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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转换为int_Java_Types_Int_Double - Fatal编程技术网

Java 问题-不兼容类型:可能从double转换为int

Java 问题-不兼容类型:可能从double转换为int,java,types,int,double,Java,Types,Int,Double,在下面的代码中,以下几行不断触发问题标题中提到的错误。我一直在尝试各种方法,但都无济于事。一种方法是,我尝试了各种配置,将mid和currentNum设置为double/int等。请使用修复程序进行响应,这样就不会再次发生此错误。谢谢 导致错误的代码行: int arrayWidth = twoDArr[0].length int mid = (low + high) / 2; double currentNum = twoDArr[mid/arrayWidt

在下面的代码中,以下几行不断触发问题标题中提到的错误。我一直在尝试各种方法,但都无济于事。一种方法是,我尝试了各种配置,将mid和currentNum设置为double/int等。请使用修复程序进行响应,这样就不会再次发生此错误。谢谢

导致错误的代码行:

int arrayWidth = twoDArr[0].length
int mid = (low + high) / 2;                  
double currentNum = twoDArr[mid/arrayWidth][mid%arrayWidth];
这些代码行所属的方法:

        private static void findValue(){
        double searchValue; //number to search
        double arraySize = twoDimArray2.length * twoDimArray2[0].length - 1;
        String input = "";
        char again;

        Scanner keyboard = new Scanner(System.in);

        do {

        try {
        System.out.println("Enter a search value:");
        searchValue = keyboard.nextDouble();
        System.out.println(binarySearch(twoDimArray2, 0, arraySize, searchValue));

        }catch(NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "This program searches for double values only. Please try again.");
           input = "y";


        }}while(input.charAt(0) == 'y' || input.charAt(0) == 'Y');


        }

        //method for recursive searching goes here.

          public static boolean binarySearch(double[][] twoDArr, double low, double high, double valToSearch) {

          if(low <= high)
          {

              int arrayWidth = twoDArr[0].length;
              int mid = (low + high) / 2;
              double currentNum = twoDArr[mid/arrayWidth][mid%arrayWidth];

              if(currentNum == valToSearch) {

              return true;

              } else if(currentNum < valToSearch) {

              return binarySearch(twoDArr, (mid + 1), high, valToSearch);

              } else if (currentNum > valToSearch) {

              return binarySearch(twoDArr, low, (mid-1), valToSearch);

              } else {

               return false;

              }


              }
private static void findValue(){
double searchValue;//要搜索的数字
double arraySize=twoDimArray2.length*twoDimArray2[0]。长度-1;
字符串输入=”;
再次烧焦;
扫描仪键盘=新扫描仪(System.in);
做{
试一试{
System.out.println(“输入搜索值:”);
searchValue=keyboard.nextDouble();
System.out.println(二进制搜索(twoDimArray2,0,arraySize,searchValue));
}捕获(数字格式){
showMessageDialog(null,“此程序仅搜索双值。请重试”);
输入=“y”;
}}而(input.charAt(0)='y'| | input.charAt(0)='y');
}
//这里是递归搜索的方法。
公共静态布尔二进制搜索(双[][]twoDArr、双低、双高、双valToSearch){
if(低电压搜索){
返回二进制搜索(twoDArr,low,(mid-1),valToSearch);
}否则{
返回false;
}
}

嘿!你明白错误告诉你的是什么以及它发生的原因吗?是的,我明白-所以我实际上只是设法解决了我这边的问题,但现在必须解决那里的返回语句。非常感谢您如此快速的响应:-)错误似乎不言自明,数组的索引必须是
int
,并且您应该在
binarySearch()方法中接受
int
。嘿!你明白错误告诉你的是什么以及它发生的原因吗?是的,我明白-所以我实际上只是设法解决了我这边的问题,但现在必须解决那里的返回语句。非常感谢您如此快速的响应:-)错误似乎不言自明,数组的索引必须是
int
,并且您应该在
binarySearch()方法中接受
int