Wenn ich anrufe, ist Math.ceil(5.2)
die Rückgabe die double
6.0
. Meine natürliche Neigung war zu denken, dass a zurückkehren Math.ceil(double a)
würde long
. Aus der Dokumentation:
ceil(double a)
Gibt den kleinsten
double
Wert (der der negativen Unendlichkeit am nächsten kommt) zurück , der nicht kleiner als das Argument ist und einer mathematischen Ganzzahl entspricht.
Aber warum double
eher a als a zurückgeben, long
wenn das Ergebnis eine ganze Zahl ist? Ich denke, das Verständnis des Grundes könnte mir helfen, Java ein bisschen besser zu verstehen. Es könnte mir auch helfen herauszufinden, ob ich mich selbst in Schwierigkeiten bringen werde, indem ich auf ein long
z
long b = (long)Math.ceil(a);
immer was ich denke es sollte sein? Ich befürchte, es könnte einige Grenzfälle geben, die problematisch sind.