将数组列表四舍五入为整数数组

问题描述 投票:-3回答:2

我一直在尝试解决这个问题,但是无法解决这个问题。“创建一个Java方法int []舍入(ArrayList输入),该方法返回一个新的整数数组,其中包含所有正确输入的双精度数,四舍五入为整数。”

这是我到目前为止的去处:

package javaProblem;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class TowMethods {
    public static int[] roundOff(ArrayList<Double> input) {

        int [] iL=new int[input.size()];
        for (double i:iL) {
            //input.get(i);
            int n=(int) Math.round(i) ;
            iL[n]=n;
        }
        System.out.print(Arrays.toString(iL));
        return (iL);

    }

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        ArrayList<Double> input1 = new ArrayList<Double>();
        input1.add(2.3);
        input1.add(1.3);
        input1.add(3.35);
       /* for (int i = 0; i < 3; i++) {
            double num = keyboard.nextDouble();
            input.add(num);
        }*/
        int[] iList = roundOff(input1);
        System.out.println(Arrays.toString(iList));

    }
}
java arrays arraylist rounding
2个回答
1
投票
for (int i = 0; i < input.size(); i++) {
    iL[i] = (int)(Math.round(input.get(i)));
}

而不是在roundOff方法中循环


1
投票

[在命名变量时,请尝试使用有意义的名称。同样在roundOff方法内部而不是foreach循环中,使用经典的for循环,不要遍历新创建的整数数组,而要遍历作为参数的ArrayList。

这里是可能的解决方案:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class TowMethods {

    public static int[] roundOff(ArrayList<Double> inputs) {

        int [] integers=new int[inputs.size()];
        for (int i=0; i < inputs.size(); i++) {

            integers[i] = (int) Math.round(inputs.get(i));

        }

        return integers;

    }

    public static void main(String[] args) {
       // Scanner keyboard = new Scanner(System.in);
        ArrayList<Double> inputs = new ArrayList<Double>();

        inputs.add(2.3);
        inputs.add(1.3);
        inputs.add(3.35);

        /*
        for (int i = 0; i < 3; i++) {
            double num = keyboard.nextDouble();
            inputs.add(num);
        }
        */
        int[] iList = roundOff(inputs);
        System.out.println(Arrays.toString(iList));

    }
}

如果要接受用户输入,只需取消注释main方法中的注释行。

© www.soinside.com 2019 - 2024. All rights reserved.