Produkt eines double - streams

Bdrian

Neues Mitglied
Hallo,

ich bin dabei ein simple Klasse zu schreiben, die 100 zufällige double-werte eines Streams nach Größe (5) filtert und dann das Produkt dieser ausgibt. Dabei soll die Schnittstelle DoubleBinaryOperator benutzt werden, um den passenden Lambda-Ausdruck für die Methode reduce zu übergeben. Nun ist das Ergebnis nach Aufruf der reduce-Methode aber immer kleiner als 5, was für mich keinen Sinn ergibt.

Was genau ist das Problem?

Java:
public class Klasse {
    public static void main(String args[]) {
        DoubleStream stream = new Random().doubles(100, 0.0, 10.0);
        DoubleBinaryOperator op = (n, m) -> {return n * m;};
        double product = stream.filter(n -> n > 5).reduce(1.0, (x, y) -> op.applyAsDouble(x,y));
        System.out.println(product);
    }

}
 
Der Wert der da rauskommt ist recht groß:

Java:
        DoubleStream stream = new Random().doubles(100, 0.0, 10.0);
        DoubleBinaryOperator op = (n, m) -> {return n * m;};
        Double product = stream.filter(n -> n > 5).reduce(1.0, op::applyAsDouble);
        System.out.printf("%.1f%n", product);
 

Zurück
Oben