Frage von PhysikFreak333, 19

Wieso gibt Eclipse bei diesem Aufruf BinaryOperator<Double> sumUp = Double::sum; System.out.println(sumUp.apply(3.14,1.0)); nicht 4,14 aus?

Antwort
von PerfectMuffin, 7

Was gibt es denn aus?

Und seit wann gibt es den C-Scope-Operator in Java?

Kommentar von PhysikFreak333 ,

ist ein Lambda-Ausdruck (Funktionales Feature ist aber egal), es gibt 4,14000000000000000000000001 aus

aber andere Additionen, wie 2,14+1 oder 3,14+3 sind ganz normal

Kommentar von PerfectMuffin ,

Liegt am Speicherformat von double. Das ist nicht auf lineare, sondern logarithmische Präzision ausgelegt, deshalb passiert sowas manchmal.

Deshalb auch vorsicht mit dem ==-Operator.

Gut zu wissen, dass man mit Lambdas statische Funktionen einpacken kann.

Keine passende Antwort gefunden?

Fragen Sie die Community