尝试了几件事。我需要遍历一系列双打。并将每个元素舍入到最接近的整数。我出错的任何想法?
for(int i = 0; i < example.length; i++){
Math.round(example[i]);
}
int[] example1 = new int[example.length];
for(int i=0; i<example1.length; i++) {
Math.round(example1[i]);
example1[i] = (int) example[i];
}
答案 0 :(得分:1)
您需要将Math.round指定给变量。
试试这个:
for(int i = 0; i < example.length; i++){
example[i] = Math.round(example[i]);
}
答案 1 :(得分:1)
for(int i = 0; i < example.length; i++){
Math.round(example[i]);
}
在上面的循环中,您没有将Math.round()
的值赋给变量,因此您将丢失它。
如果您不需要double[]
的值,则可以将其分配回同一元素。所以,你循环看起来如下:
for(int i = 0; i < example.length; i++){
example[i] = Math.round(example[i]); // assigning back to same element
}
否则,将其放入不同的数组,可能是int[]
。然后,它看起来如下:
int[] roundedValues = new int[example.length];
for(int i = 0; i < example.length; i++){
roundedValues[i] = (int) Math.round(example[i]); // into new array
}
答案 2 :(得分:0)
你可以试试这个:
for(int i = 0; i < example.length; i++){
example[i] = Math.round(example[i]);
}
答案 3 :(得分:0)
您不需要2个循环。
您没有使用从Math.round()
返回的结果。
您正在尝试将双精度转换为int - 无需执行此操作。
尝试:
double[] exmaple = //get your array of doubles
long[] rounded = new long[example.length];
for (int i=0; i<example.length; i++) {
rounded[i] = Math.round(example[i]);
}