2017-10-20 6 views
2

Dies ist meine Hausaufgabe Frage: "Erstellen Sie eine Methode namens roundAllUp(), die ein Array von doubles nimmt und ein neues Array von ganzen Zahlen zurückgibt. Dieses zurückgegebene Array enthält alle Zahlen aus dem Array von doubles, aber aufgerundet."Wie kann ich ein Double-Array in ein Array von Ganzzahlen in Java umwandeln?

Hier ist die Methode, die ich bisher habe:

public static int[] roundUp(double[] array2){ 
    for(int i = 0; i < array2.length; i++){ 
     Math.ceil(array2[i]); 
    } 
} 

Sobald die Werte aus dem Array von Doppel aufzurunden, wie kann ich sie in einem Array von ganzen Zahlen zurückgeben?

Antwort

5

Sie sind in der Nähe, müssen Sie ein neues Array von int (s) erstellen und das Ergebnis Ihrer Math.ceil Anrufe zuweisen (mit einer geeigneten Besetzung). Wie,

public static int[] roundUp(double[] array2) { 
    int[] arr = new int[array2.length]; 
    for (int i = 0; i < array2.length; i++) { 
     arr[i] = (int) Math.ceil(array2[i]); 
    } 
    return arr; 
} 

Wenn Sie Java 8+ verwenden, können Sie auch ein DoubleStream verwenden und jedes Element Karte zu einem int vor in einer Zeile auf ein Array zu konvertieren. Wie,

public static int[] roundUp2(double[] array2) { 
    return DoubleStream.of(array2).mapToInt(d -> (int) Math.ceil(d)).toArray(); 
} 
0

Ich glaube, dass einfaches Gießen an dieser Stelle den Trick tun wird: (int) Math.ceil(array2[i]) ist die aufgerundete int Darstellung von array2[i]. Von dort müssen Sie nur diese int s zu einem int Array (int[]) zuweisen und es zurückgeben.

Verwandte Themen