java - 数组中的小数点位置? ( java )

标签 java arrays

我看过这段代码,应该没问题,我不明白为什么如果“左+右”是奇数,那么“a[middle] == 0”不会给出错误因为它不存在于数组小数位中。谢谢。

/** Searches the value 0 within a[left..right].
* Precondition: 0 <= left, right < a.length,
* a[left..right] is sorted in ascending order. */

public static int intercepts(double[] a, int left, int right) {
if (left > right) { return -1; }
else {
int middle = (left + right) / 2;
if (a[middle] == 0) { return middle; }
else if (a[middle] > 0) {
return intercepts(a, left, middle - 1);
} else {
return intercepts(a, middle + 1, right); }
}
}

最佳答案

leftright2 都是整数,因此将执行整数除法,结果也将是一个整数。 Integer division rounds toward 0 ,因此所有小数都被简单地截掉。

See for yourself :

public static void main (String[] args) {
    int middle = 5 / 2;
    System.out.println(middle); // 2
}

关于java - 数组中的小数点位置? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55446138/

相关文章:

java.lang.NullPointerException 无法找出导致错误的原因

c++ - 在模板类中初始化 C++ 数组成员

python - 将二维 C 数组传递给 python numpy

C:尝试初始化结构中的 char 数组时,分配错误中的类型不兼容

javascript - 排序函数在放入 for 循环时表现不同

java - Arrays.asList().contains() 给出错误的结果

java - 如何让用户在访问jsp页面后立即下载pdf文件?

java - 使标签显示在顶点框内(jgraphx 库)

java - 当仅更改所选列时,不会调用 valueChanged 方法

arrays - 在 C 中,如何 "directly"将结构复制到数组成员?