Warum gibt Math.ceil ein Double zurück?

Wenn ich rufe Math.ceil(5.2) die Rückkehr ist double 6.0. Meine Natürliche Neigung war, zu denken, dass Math.ceil(double a) zurückkehren würde eine long. Aus der Dokumentation:

ceil(double a)

Gibt den kleinsten (nahe negativ unendlich) double Wert
das ist nicht weniger als das argument und gleich einer mathematischen
integer.

Aber warum zurückgeben double eher als eine long wenn das Ergebnis ein integer? Ich denke, Verständnis ist der Grund dahinter könnte mir helfen, zu verstehen, Java ein bisschen besser. Es könnte auch mir helfen, herauszufinden, ob ich werde mich in Schwierigkeiten durch Gießen zu einem long ist, z.B.

long b = (long)Math.ceil(a);

immer was ich denke es sein sollte? Ich fürchte, es könnte eine Grenze Fälle, die problematisch sind.

InformationsquelleAutor der Frage PengOne | 2011-09-02

Schreibe einen Kommentar